Program: 171339
Project: 171339
Buggy source:
public String getPenisDescription(GameCharacter owner){
  boolean isPlayer=owner.isPlayer();
  descriptionSB=new StringBuilder();
  if (isPlayer) {
    descriptionSB.append("String_Node_Str");
  }
 else {
    descriptionSB.append("String_Node_Str");
  }
switch (penis.getType()) {
case HUMAN:
    descriptionSB.append("String_Node_Str");
  break;
case DEMON_COMMON:
descriptionSB.append("String_Node_Str");
break;
case BOVINE:
descriptionSB.append("String_Node_Str");
break;
case CANINE:
descriptionSB.append("String_Node_Str");
break;
case LUPINE:
descriptionSB.append("String_Node_Str");
break;
case FELINE:
descriptionSB.append("String_Node_Str");
break;
case SQUIRREL:
descriptionSB.append("String_Node_Str");
break;
case EQUINE:
descriptionSB.append("String_Node_Str");
break;
case SLIME:
descriptionSB.append("String_Node_Str");
break;
case AVIAN:
descriptionSB.append("String_Node_Str");
break;
case ANGEL:
descriptionSB.append("String_Node_Str");
break;
case NONE:
break;
}
if (isPlayer) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
for (PenisModifier pm : PenisModifier.values()) {
if (owner.hasPenisModifier(pm)) {
switch (pm) {
case RIBBED:
descriptionSB.append("String_Node_Str");
break;
case TENTACLED:
descriptionSB.append("String_Node_Str");
break;
case BARBED:
descriptionSB.append("String_Node_Str");
break;
case FLARED:
descriptionSB.append("String_Node_Str");
break;
case KNOTTED:
descriptionSB.append("String_Node_Str");
break;
case PREHENSILE:
descriptionSB.append("String_Node_Str");
break;
case SHEATHED:
descriptionSB.append("String_Node_Str");
break;
case TAPERED:
descriptionSB.append("String_Node_Str");
break;
case VEINY:
descriptionSB.append("String_Node_Str");
break;
}
}
}
if (owner.isPlayer()) {
if (!penis.isVirgin()) {
for (OrificeType ot : OrificeType.values()) {
if (owner.getVirginityLoss(new SexType(PenetrationType.PENIS_PLAYER,ot)) != null && !owner.getVirginityLoss(new SexType(PenetrationType.PENIS_PLAYER,ot)).isEmpty()) {
descriptionSB.append("String_Node_Str" + owner.getVirginityLoss(new SexType(PenetrationType.PENIS_PLAYER,ot)) + "String_Node_Str");
}
}
}
 else {
descriptionSB.append("String_Node_Str");
}
}
 else {
if (!penis.isVirgin()) {
for (OrificeType ot : OrificeType.values()) {
if (owner.getVirginityLoss(new SexType(PenetrationType.PENIS_PARTNER,ot)) != null && !owner.getVirginityLoss(new SexType(PenetrationType.PENIS_PARTNER,ot)).isEmpty()) {
descriptionSB.append("String_Node_Str");
}
}
}
 else {
descriptionSB.append("String_Node_Str");
}
}
if (Capacity.getCapacityFromValue(penis.getOrificeUrethra().getStretchedCapacity()) != Capacity.ZERO_IMPENETRABLE) {
if (isPlayer) {
descriptionSB.append("String_Node_Str" + "String_Node_Str" + Capacity.getCapacityFromValue(penis.getOrificeUrethra().getStretchedCapacity()).getMaximumSizeComfortableWithLube().getDescriptor() + "String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str" + "String_Node_Str" + Capacity.getCapacityFromValue(penis.getOrificeUrethra().getStretchedCapacity()).getMaximumSizeComfortableWithLube().getDescriptor() + "String_Node_Str");
}
switch (penis.getOrificeUrethra().getElasticity()) {
case ZERO_UNYIELDING:
descriptionSB.append("String_Node_Str" + Colour.GENERIC_SEX.toWebHexString() + "String_Node_Str");
break;
case ONE_RIGID:
descriptionSB.append("String_Node_Str" + Colour.GENERIC_SEX.toWebHexString() + "String_Node_Str");
break;
case TWO_FIRM:
descriptionSB.append("String_Node_Str" + Colour.GENERIC_SEX.toWebHexString() + "String_Node_Str");
break;
case THREE_FLEXIBLE:
descriptionSB.append("String_Node_Str" + Colour.GENERIC_SEX.toWebHexString() + "String_Node_Str");
break;
case FOUR_LIMBER:
descriptionSB.append("String_Node_Str" + Colour.GENERIC_SEX.toWebHexString() + "String_Node_Str");
break;
case FIVE_STRETCHY:
descriptionSB.append("String_Node_Str" + Colour.GENERIC_SEX.toWebHexString() + "String_Node_Str");
break;
case SIX_SUPPLE:
descriptionSB.append("String_Node_Str" + Colour.GENERIC_SEX.toWebHexString() + "String_Node_Str");
break;
case SEVEN_ELASTIC:
descriptionSB.append("String_Node_Str" + Colour.GENERIC_SEX.toWebHexString() + "String_Node_Str");
break;
default :
break;
}
switch (penis.getOrificeUrethra().getPlasticity()) {
case ZERO_RUBBERY:
descriptionSB.append("String_Node_Str");
break;
case ONE_SPRINGY:
descriptionSB.append("String_Node_Str");
break;
case TWO_TENSILE:
descriptionSB.append("String_Node_Str");
break;
case THREE_RESILIENT:
descriptionSB.append("String_Node_Str");
break;
case FOUR_ACCOMMODATING:
descriptionSB.append("String_Node_Str");
break;
case FIVE_YIELDING:
descriptionSB.append("String_Node_Str");
break;
case SIX_MALLEABLE:
descriptionSB.append("String_Node_Str");
break;
case SEVEN_MOULDABLE:
descriptionSB.append("String_Node_Str");
break;
default :
break;
}
for (OrificeModifier om : OrificeModifier.values()) {
if (owner.hasFaceOrificeModifier(om)) {
if (owner.isPlayer()) {
switch (om) {
case PUFFY:
descriptionSB.append("String_Node_Str");
break;
case MUSCLE_CONTROL:
descriptionSB.append("String_Node_Str");
break;
case RIBBED:
descriptionSB.append("String_Node_Str");
break;
case TENTACLED:
descriptionSB.append("String_Node_Str");
break;
}
}
 else {
switch (om) {
case PUFFY:
descriptionSB.append("String_Node_Str");
break;
case MUSCLE_CONTROL:
descriptionSB.append("String_Node_Str");
break;
case RIBBED:
descriptionSB.append("String_Node_Str");
break;
case TENTACLED:
descriptionSB.append("String_Node_Str");
break;
}
}
}
}
}
if (isPlayer && !owner.isUrethraVirgin()) {
for (PenetrationType pt : PenetrationType.values()) {
if (Main.game.getPlayer().getVirginityLoss(new SexType(pt,OrificeType.URETHRA_PLAYER)) != null && !Main.game.getPlayer().getVirginityLoss(new SexType(pt,OrificeType.URETHRA_PLAYER)).isEmpty()) {
descriptionSB.append("String_Node_Str" + Colour.GENERIC_ARCANE.toWebHexString() + "String_Node_Str"+ Main.game.getPlayer().getVirginityLoss(new SexType(pt,OrificeType.URETHRA_PLAYER))+ "String_Node_Str");
}
}
}
descriptionSB.append("String_Node_Str");
if (Main.game.isPubicHairEnabled()) {
switch (owner.getPubicHair()) {
case ZERO_NONE:
if (isPlayer) {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getName(owner,true) + "String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getName(owner,true) + "String_Node_Str");
}
break;
case ONE_STUBBLE:
if (isPlayer) {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
break;
case TWO_MANICURED:
if (isPlayer) {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
break;
case THREE_TRIMMED:
if (isPlayer) {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
break;
case FOUR_NATURAL:
if (isPlayer) {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
break;
case FIVE_UNKEMPT:
if (isPlayer) {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
break;
case SIX_BUSHY:
if (isPlayer) {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
break;
case SEVEN_WILD:
if (isPlayer) {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
break;
}
}
descriptionSB.append("String_Node_Str");
if (owner.isInternalTesticles()) {
if (isPlayer) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
}
 else {
switch (penis.getTesticle().getTesticleSize()) {
case ZERO_VESTIGIAL:
if (isPlayer) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
break;
case ONE_TINY:
if (isPlayer) descriptionSB.append("String_Node_Str");
 else descriptionSB.append("String_Node_Str");
break;
case TWO_AVERAGE:
if (isPlayer) descriptionSB.append("String_Node_Str");
 else descriptionSB.append("String_Node_Str");
break;
case THREE_LARGE:
if (isPlayer) descriptionSB.append("String_Node_Str");
 else descriptionSB.append("String_Node_Str");
break;
case FOUR_HUGE:
if (isPlayer) descriptionSB.append("String_Node_Str");
 else descriptionSB.append("String_Node_Str");
break;
case FIVE_MASSIVE:
if (isPlayer) descriptionSB.append("String_Node_Str");
 else descriptionSB.append("String_Node_Str");
break;
case SIX_GIGANTIC:
if (isPlayer) descriptionSB.append("String_Node_Str");
 else descriptionSB.append("String_Node_Str");
break;
case SEVEN_ABSURD:
if (isPlayer) descriptionSB.append("String_Node_Str");
 else descriptionSB.append("String_Node_Str");
break;
}
}
String cumName="String_Node_Str";
if (owner.isPlayer()) {
cumName="String_Node_Str";
}
switch (penis.getTesticle().getCumProduction()) {
case ZERO_NONE:
if (penis.getTesticle().getTesticleSize().getValue() > TesticleSize.TWO_AVERAGE.getValue()) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
descriptionSB.append("String_Node_Str" + cumName + "String_Node_Str");
break;
case ONE_TRICKLE:
if (penis.getTesticle().getTesticleSize().getValue() > TesticleSize.TWO_AVERAGE.getValue()) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
descriptionSB.append("String_Node_Str" + cumName + "String_Node_Str");
break;
case TWO_SMALL_AMOUNT:
if (penis.getTesticle().getTesticleSize().getValue() > TesticleSize.THREE_LARGE.getValue()) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
descriptionSB.append("String_Node_Str" + cumName + "String_Node_Str");
break;
case THREE_AVERAGE:
if (penis.getTesticle().getTesticleSize().getValue() > TesticleSize.FOUR_HUGE.getValue()) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
descriptionSB.append("String_Node_Str" + cumName + "String_Node_Str");
break;
case FOUR_LARGE:
if (penis.getTesticle().getTesticleSize().getValue() < TesticleSize.TWO_AVERAGE.getValue()) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
descriptionSB.append("String_Node_Str" + cumName + "String_Node_Str");
break;
case FIVE_HUGE:
if (penis.getTesticle().getTesticleSize().getValue() < TesticleSize.TWO_AVERAGE.getValue()) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
descriptionSB.append("String_Node_Str" + cumName + "String_Node_Str");
break;
case SIX_EXTREME:
if (penis.getTesticle().getTesticleSize().getValue() < TesticleSize.TWO_AVERAGE.getValue()) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
descriptionSB.append("String_Node_Str" + cumName + "String_Node_Str");
break;
case SEVEN_MONSTROUS:
if (penis.getTesticle().getTesticleSize().getValue() < TesticleSize.TWO_AVERAGE.getValue()) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
descriptionSB.append("String_Node_Str" + cumName + "String_Node_Str");
break;
}
if (owner.isPlayer()) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
switch (penis.getTesticle().getCum().getFlavour()) {
case CHOCOLATE:
descriptionSB.append("String_Node_Str");
break;
case CUM:
descriptionSB.append("String_Node_Str");
break;
case GIRL_CUM:
descriptionSB.append("String_Node_Str");
break;
case HONEY:
descriptionSB.append("String_Node_Str");
break;
case MILK:
descriptionSB.append("String_Node_Str");
break;
case MINT:
descriptionSB.append("String_Node_Str");
break;
case PINEAPPLE:
descriptionSB.append("String_Node_Str");
break;
case SLIME:
descriptionSB.append("String_Node_Str");
break;
case STRAWBERRY:
descriptionSB.append("String_Node_Str");
break;
case BEER:
descriptionSB.append("String_Node_Str");
break;
case VANILLA:
descriptionSB.append("String_Node_Str");
break;
}
for (FluidModifier fm : FluidModifier.values()) {
if (owner.hasCumModifier(fm)) {
switch (fm) {
case ADDICTIVE:
descriptionSB.append("String_Node_Str");
break;
case BUBBLING:
descriptionSB.append("String_Node_Str");
break;
case HALLUCINOGENIC:
descriptionSB.append("String_Node_Str");
break;
case MUSKY:
descriptionSB.append("String_Node_Str");
break;
case SLIMY:
descriptionSB.append("String_Node_Str");
break;
case STICKY:
descriptionSB.append("String_Node_Str");
break;
case VISCOUS:
descriptionSB.append("String_Node_Str");
break;
case ALCOHOLIC:
descriptionSB.append("String_Node_Str");
break;
}
}
}
return UtilText.parse(owner,descriptionSB.toString());
}

Fixed version (ground truth):
public String getPenisDescription(GameCharacter owner){
  boolean isPlayer=owner.isPlayer();
  descriptionSB=new StringBuilder();
  if (isPlayer) {
    descriptionSB.append("String_Node_Str");
  }
 else {
    descriptionSB.append("String_Node_Str");
  }
switch (penis.getType()) {
case HUMAN:
    descriptionSB.append("String_Node_Str");
  break;
case DEMON_COMMON:
descriptionSB.append("String_Node_Str");
break;
case BOVINE:
descriptionSB.append("String_Node_Str");
break;
case CANINE:
descriptionSB.append("String_Node_Str");
break;
case LUPINE:
descriptionSB.append("String_Node_Str");
break;
case FELINE:
descriptionSB.append("String_Node_Str");
break;
case SQUIRREL:
descriptionSB.append("String_Node_Str");
break;
case EQUINE:
descriptionSB.append("String_Node_Str");
break;
case SLIME:
descriptionSB.append("String_Node_Str");
break;
case AVIAN:
descriptionSB.append("String_Node_Str");
break;
case ANGEL:
descriptionSB.append("String_Node_Str");
break;
case NONE:
break;
}
if (isPlayer) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
for (PenisModifier pm : PenisModifier.values()) {
if (owner.hasPenisModifier(pm)) {
switch (pm) {
case RIBBED:
descriptionSB.append("String_Node_Str");
break;
case TENTACLED:
descriptionSB.append("String_Node_Str");
break;
case BARBED:
descriptionSB.append("String_Node_Str");
break;
case FLARED:
descriptionSB.append("String_Node_Str");
break;
case KNOTTED:
descriptionSB.append("String_Node_Str");
break;
case PREHENSILE:
descriptionSB.append("String_Node_Str");
break;
case SHEATHED:
descriptionSB.append("String_Node_Str");
break;
case TAPERED:
descriptionSB.append("String_Node_Str");
break;
case VEINY:
descriptionSB.append("String_Node_Str");
break;
}
}
}
if (owner.isPlayer()) {
if (!penis.isVirgin()) {
for (OrificeType ot : OrificeType.values()) {
if (owner.getVirginityLoss(new SexType(PenetrationType.PENIS_PLAYER,ot)) != null && !owner.getVirginityLoss(new SexType(PenetrationType.PENIS_PLAYER,ot)).isEmpty()) {
descriptionSB.append("String_Node_Str" + owner.getVirginityLoss(new SexType(PenetrationType.PENIS_PLAYER,ot)) + "String_Node_Str");
break;
}
}
}
 else {
descriptionSB.append("String_Node_Str");
}
}
 else {
if (!penis.isVirgin()) {
for (OrificeType ot : OrificeType.values()) {
if (owner.getVirginityLoss(new SexType(PenetrationType.PENIS_PARTNER,ot)) != null && !owner.getVirginityLoss(new SexType(PenetrationType.PENIS_PARTNER,ot)).isEmpty()) {
descriptionSB.append("String_Node_Str");
break;
}
}
}
 else {
descriptionSB.append("String_Node_Str");
}
}
if (Capacity.getCapacityFromValue(penis.getOrificeUrethra().getStretchedCapacity()) != Capacity.ZERO_IMPENETRABLE) {
if (isPlayer) {
descriptionSB.append("String_Node_Str" + "String_Node_Str" + Capacity.getCapacityFromValue(penis.getOrificeUrethra().getStretchedCapacity()).getMaximumSizeComfortableWithLube().getDescriptor() + "String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str" + "String_Node_Str" + Capacity.getCapacityFromValue(penis.getOrificeUrethra().getStretchedCapacity()).getMaximumSizeComfortableWithLube().getDescriptor() + "String_Node_Str");
}
switch (penis.getOrificeUrethra().getElasticity()) {
case ZERO_UNYIELDING:
descriptionSB.append("String_Node_Str" + Colour.GENERIC_SEX.toWebHexString() + "String_Node_Str");
break;
case ONE_RIGID:
descriptionSB.append("String_Node_Str" + Colour.GENERIC_SEX.toWebHexString() + "String_Node_Str");
break;
case TWO_FIRM:
descriptionSB.append("String_Node_Str" + Colour.GENERIC_SEX.toWebHexString() + "String_Node_Str");
break;
case THREE_FLEXIBLE:
descriptionSB.append("String_Node_Str" + Colour.GENERIC_SEX.toWebHexString() + "String_Node_Str");
break;
case FOUR_LIMBER:
descriptionSB.append("String_Node_Str" + Colour.GENERIC_SEX.toWebHexString() + "String_Node_Str");
break;
case FIVE_STRETCHY:
descriptionSB.append("String_Node_Str" + Colour.GENERIC_SEX.toWebHexString() + "String_Node_Str");
break;
case SIX_SUPPLE:
descriptionSB.append("String_Node_Str" + Colour.GENERIC_SEX.toWebHexString() + "String_Node_Str");
break;
case SEVEN_ELASTIC:
descriptionSB.append("String_Node_Str" + Colour.GENERIC_SEX.toWebHexString() + "String_Node_Str");
break;
default :
break;
}
switch (penis.getOrificeUrethra().getPlasticity()) {
case ZERO_RUBBERY:
descriptionSB.append("String_Node_Str");
break;
case ONE_SPRINGY:
descriptionSB.append("String_Node_Str");
break;
case TWO_TENSILE:
descriptionSB.append("String_Node_Str");
break;
case THREE_RESILIENT:
descriptionSB.append("String_Node_Str");
break;
case FOUR_ACCOMMODATING:
descriptionSB.append("String_Node_Str");
break;
case FIVE_YIELDING:
descriptionSB.append("String_Node_Str");
break;
case SIX_MALLEABLE:
descriptionSB.append("String_Node_Str");
break;
case SEVEN_MOULDABLE:
descriptionSB.append("String_Node_Str");
break;
default :
break;
}
for (OrificeModifier om : OrificeModifier.values()) {
if (owner.hasFaceOrificeModifier(om)) {
if (owner.isPlayer()) {
switch (om) {
case PUFFY:
descriptionSB.append("String_Node_Str");
break;
case MUSCLE_CONTROL:
descriptionSB.append("String_Node_Str");
break;
case RIBBED:
descriptionSB.append("String_Node_Str");
break;
case TENTACLED:
descriptionSB.append("String_Node_Str");
break;
}
}
 else {
switch (om) {
case PUFFY:
descriptionSB.append("String_Node_Str");
break;
case MUSCLE_CONTROL:
descriptionSB.append("String_Node_Str");
break;
case RIBBED:
descriptionSB.append("String_Node_Str");
break;
case TENTACLED:
descriptionSB.append("String_Node_Str");
break;
}
}
}
}
}
if (isPlayer && !owner.isUrethraVirgin()) {
for (PenetrationType pt : PenetrationType.values()) {
if (Main.game.getPlayer().getVirginityLoss(new SexType(pt,OrificeType.URETHRA_PLAYER)) != null && !Main.game.getPlayer().getVirginityLoss(new SexType(pt,OrificeType.URETHRA_PLAYER)).isEmpty()) {
descriptionSB.append("String_Node_Str" + Colour.GENERIC_ARCANE.toWebHexString() + "String_Node_Str"+ Main.game.getPlayer().getVirginityLoss(new SexType(pt,OrificeType.URETHRA_PLAYER))+ "String_Node_Str");
break;
}
}
}
descriptionSB.append("String_Node_Str");
if (Main.game.isPubicHairEnabled()) {
switch (owner.getPubicHair()) {
case ZERO_NONE:
if (isPlayer) {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getName(owner,true) + "String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getName(owner,true) + "String_Node_Str");
}
break;
case ONE_STUBBLE:
if (isPlayer) {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
break;
case TWO_MANICURED:
if (isPlayer) {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
break;
case THREE_TRIMMED:
if (isPlayer) {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
break;
case FOUR_NATURAL:
if (isPlayer) {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
break;
case FIVE_UNKEMPT:
if (isPlayer) {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
break;
case SIX_BUSHY:
if (isPlayer) {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
break;
case SEVEN_WILD:
if (isPlayer) {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str" + owner.getPubicHairType().getFullDescription(owner,true) + "String_Node_Str");
}
break;
}
}
descriptionSB.append("String_Node_Str");
if (owner.isInternalTesticles()) {
if (isPlayer) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
}
 else {
switch (penis.getTesticle().getTesticleSize()) {
case ZERO_VESTIGIAL:
if (isPlayer) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
break;
case ONE_TINY:
if (isPlayer) descriptionSB.append("String_Node_Str");
 else descriptionSB.append("String_Node_Str");
break;
case TWO_AVERAGE:
if (isPlayer) descriptionSB.append("String_Node_Str");
 else descriptionSB.append("String_Node_Str");
break;
case THREE_LARGE:
if (isPlayer) descriptionSB.append("String_Node_Str");
 else descriptionSB.append("String_Node_Str");
break;
case FOUR_HUGE:
if (isPlayer) descriptionSB.append("String_Node_Str");
 else descriptionSB.append("String_Node_Str");
break;
case FIVE_MASSIVE:
if (isPlayer) descriptionSB.append("String_Node_Str");
 else descriptionSB.append("String_Node_Str");
break;
case SIX_GIGANTIC:
if (isPlayer) descriptionSB.append("String_Node_Str");
 else descriptionSB.append("String_Node_Str");
break;
case SEVEN_ABSURD:
if (isPlayer) descriptionSB.append("String_Node_Str");
 else descriptionSB.append("String_Node_Str");
break;
}
}
String cumName="String_Node_Str";
if (owner.isPlayer()) {
cumName="String_Node_Str";
}
switch (penis.getTesticle().getCumProduction()) {
case ZERO_NONE:
if (penis.getTesticle().getTesticleSize().getValue() > TesticleSize.TWO_AVERAGE.getValue()) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
descriptionSB.append("String_Node_Str" + cumName + "String_Node_Str");
break;
case ONE_TRICKLE:
if (penis.getTesticle().getTesticleSize().getValue() > TesticleSize.TWO_AVERAGE.getValue()) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
descriptionSB.append("String_Node_Str" + cumName + "String_Node_Str");
break;
case TWO_SMALL_AMOUNT:
if (penis.getTesticle().getTesticleSize().getValue() > TesticleSize.THREE_LARGE.getValue()) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
descriptionSB.append("String_Node_Str" + cumName + "String_Node_Str");
break;
case THREE_AVERAGE:
if (penis.getTesticle().getTesticleSize().getValue() > TesticleSize.FOUR_HUGE.getValue()) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
descriptionSB.append("String_Node_Str" + cumName + "String_Node_Str");
break;
case FOUR_LARGE:
if (penis.getTesticle().getTesticleSize().getValue() < TesticleSize.TWO_AVERAGE.getValue()) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
descriptionSB.append("String_Node_Str" + cumName + "String_Node_Str");
break;
case FIVE_HUGE:
if (penis.getTesticle().getTesticleSize().getValue() < TesticleSize.TWO_AVERAGE.getValue()) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
descriptionSB.append("String_Node_Str" + cumName + "String_Node_Str");
break;
case SIX_EXTREME:
if (penis.getTesticle().getTesticleSize().getValue() < TesticleSize.TWO_AVERAGE.getValue()) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
descriptionSB.append("String_Node_Str" + cumName + "String_Node_Str");
break;
case SEVEN_MONSTROUS:
if (penis.getTesticle().getTesticleSize().getValue() < TesticleSize.TWO_AVERAGE.getValue()) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
descriptionSB.append("String_Node_Str" + cumName + "String_Node_Str");
break;
}
if (owner.isPlayer()) {
descriptionSB.append("String_Node_Str");
}
 else {
descriptionSB.append("String_Node_Str");
}
switch (penis.getTesticle().getCum().getFlavour()) {
case CHOCOLATE:
descriptionSB.append("String_Node_Str");
break;
case CUM:
descriptionSB.append("String_Node_Str");
break;
case GIRL_CUM:
descriptionSB.append("String_Node_Str");
break;
case HONEY:
descriptionSB.append("String_Node_Str");
break;
case MILK:
descriptionSB.append("String_Node_Str");
break;
case MINT:
descriptionSB.append("String_Node_Str");
break;
case PINEAPPLE:
descriptionSB.append("String_Node_Str");
break;
case SLIME:
descriptionSB.append("String_Node_Str");
break;
case STRAWBERRY:
descriptionSB.append("String_Node_Str");
break;
case BEER:
descriptionSB.append("String_Node_Str");
break;
case VANILLA:
descriptionSB.append("String_Node_Str");
break;
}
for (FluidModifier fm : FluidModifier.values()) {
if (owner.hasCumModifier(fm)) {
switch (fm) {
case ADDICTIVE:
descriptionSB.append("String_Node_Str");
break;
case BUBBLING:
descriptionSB.append("String_Node_Str");
break;
case HALLUCINOGENIC:
descriptionSB.append("String_Node_Str");
break;
case MUSKY:
descriptionSB.append("String_Node_Str");
break;
case SLIMY:
descriptionSB.append("String_Node_Str");
break;
case STICKY:
descriptionSB.append("String_Node_Str");
break;
case VISCOUS:
descriptionSB.append("String_Node_Str");
break;
case ALCOHOLIC:
descriptionSB.append("String_Node_Str");
break;
}
}
}
return UtilText.parse(owner,descriptionSB.toString());
}