diff --git a/src/npc/descriptions/butt/anus.js b/src/npc/descriptions/butt/anus.js index a4e0f47b75b8cf966792f9363bfab7b83ffbbb03..fc1e2376b259bbbff1656535e5707f868a8a2786 100644 --- a/src/npc/descriptions/butt/anus.js +++ b/src/npc/descriptions/butt/anus.js @@ -25,17 +25,16 @@ App.Desc.anus = function(slave) { if (slave.analArea - slave.anus > 3) { r.push(`but it's surrounded by a massive oval of ${analSkinDesc} ${skinDesc} skin that runs from ${his} tailbone all the way down to the`); if (slave.vagina > -1) { - r.push(`bottom of ${his} pussy`); + r.push(`bottom of ${his} pussy.`); } else { - r.push(`base of ${his} cock`); + r.push(`base of ${his} cock.`); } - r.push(`.`); } else if (slave.analArea - slave.anus > 2) { - r.push(`but it's surrounded by an oval of ${analSkinDesc} ${skinDesc} skin that occupies ${his} entire ${either("asscrack", "buttcrack")} ass`); + r.push(`but it's surrounded by an oval of ${analSkinDesc} ${skinDesc} skin that occupies ${his} entire ${either("asscrack", "buttcrack")} ass.`); } else if (slave.analArea - slave.anus > 1) { r.push(`but it's surrounded by a big ring of ${analSkinDesc} ${skinDesc} skin.`); } else if (slave.analArea - slave.anus > 0) { - r.push(`and it's surrounded by a cute ${either("pucker", "ring", "rosebud")} of ${skinDesc} skin`); + r.push(`and it's surrounded by a cute ${either("pucker", "ring", "rosebud")} of ${skinDesc} skin.`); } else { r.push(`and the ${skinDesc} skin around it is stretched smooth, since it's been deflowered only recently.`); } @@ -69,7 +68,7 @@ App.Desc.anus = function(slave) { r.push(`base of ${his} cock.`); } } else if (slave.analArea - slave.anus > 0) { - r.push(`and it's surrounded by an oval of ${analSkinDesc} ${skinDesc} skin that occupies ${his} entire ${either("asscrack", "buttcrack")}`); + r.push(`and it's surrounded by an oval of ${analSkinDesc} ${skinDesc} skin that occupies ${his} entire ${either("asscrack", "buttcrack")}.`); } else { r.push(`and the ${skinDesc} skin around it is stretched smooth, suggesting ${he}'s getting used to having such a cock-hungry rear fuckhole.`); } @@ -78,11 +77,10 @@ App.Desc.anus = function(slave) { if (slave.analArea - slave.anus > 0) { r.push(`and it's surrounded by a massive oval of ${skinDesc} skin that runs from ${his} tailbone all the way down to the`); if (slave.vagina > -1) { - r.push(`bottom of ${his} pussy`); + r.push(`bottom of ${his} pussy.`); } else { - r.push(`base of ${his} cock`); + r.push(`base of ${his} cock.`); } - r.push(`.`); } else { r.push(`and the ${skinDesc} skin around it is stretched smooth, suggesting ${he}'s only recently had ${his} ass ruined.`); } diff --git a/src/npc/descriptions/crotch/dick.js b/src/npc/descriptions/crotch/dick.js index 169e20f86eaf6e6eceb4e45e2fb44c7671be45a9..8928310140fe82095145a41eec4d60426d838aca 100644 --- a/src/npc/descriptions/crotch/dick.js +++ b/src/npc/descriptions/crotch/dick.js @@ -399,7 +399,7 @@ App.Desc.dick = function(slave) { case 10: r.push(`and ${he} has an inhuman pair of testicles`); if (V.showDickCMs === 1) { - r.push(`testicles, nearly ${ballsToEitherUnit(slave.balls)} long`); + r.push(`testicles, nearly ${ballsToEitherUnit(slave.balls)} long.`); } else { r.push(`testicles.`); } @@ -407,7 +407,7 @@ App.Desc.dick = function(slave) { case 9: r.push(`and ${he} has a titanic pair of`); if (V.showDickCMs === 1) { - r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`); + r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long.`); } else { r.push(`testicles.`); } @@ -415,7 +415,7 @@ App.Desc.dick = function(slave) { case 8: r.push(`and ${he} has a gigantic pair of`); if (V.showDickCMs === 1) { - r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`); + r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long.`); } else { r.push(`testicles.`); } @@ -423,7 +423,7 @@ App.Desc.dick = function(slave) { case 7: r.push(`and ${he} has a monstrous pair of`); if (V.showDickCMs === 1) { - r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`); + r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long.`); } else { r.push(`testicles.`); } @@ -431,7 +431,7 @@ App.Desc.dick = function(slave) { case 6: r.push(`and ${he} has an enormous pair of`); if (V.showDickCMs === 1) { - r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`); + r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long.`); } else { r.push(`testicles.`); } @@ -439,7 +439,7 @@ App.Desc.dick = function(slave) { case 5: r.push(`and ${he} has a huge pair of`); if (V.showDickCMs === 1) { - r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`); + r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long.`); } else { r.push(`testicles.`); } @@ -447,7 +447,7 @@ App.Desc.dick = function(slave) { case 4: r.push(`and ${he} has a big pair of`); if (V.showDickCMs === 1) { - r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`); + r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long.`); } else { r.push(`testicles.`); } @@ -455,7 +455,7 @@ App.Desc.dick = function(slave) { case 3: r.push(`and ${he} has an average pair of`); if (V.showDickCMs === 1) { - r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`); + r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long.`); } else { r.push(`testicles.`); } @@ -463,7 +463,7 @@ App.Desc.dick = function(slave) { case 2: r.push(`and ${he} has a small pair of testicles`); if (V.showDickCMs === 1) { - r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`); + r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long.`); } else { r.push(`testicles.`); } @@ -592,7 +592,7 @@ App.Desc.dick = function(slave) { } else if (scrotalFullness === 0) { r.push(`${His} soft scrotum allows them to rest comfortably`); if (hasBothLegs(slave)) { - r.push(`between ${his} leg.s`); + r.push(`between ${his} legs.`); } else { r.push(`beneath ${his}`); if (isAmputee(slave)) { @@ -1008,9 +1008,11 @@ App.Desc.dick = function(slave) { if (canAchieveErection(slave)) { r.push(`goes, along with ${his} shaft`); if (hasAnyLegs(slave)) { - r.push(`and leg`); + r.push(`and`); if (hasBothLegs(slave)) { - r.push(`s`); + r.push(`legs`); + } else { + r.push(`leg`); } } r.push(`whenever ${he} is erect.`); @@ -1369,11 +1371,11 @@ App.Desc.dick = function(slave) { } else if (scrotalFullness === 0) { r.push(`${His} soft scrotum allows them to rest comfortably`); if (hasAnyLegs(slave)) { - r.push(`between ${his} leg`); + r.push(`between ${his}`); if (hasBothLegs(slave)) { - r.push(`s.`); + r.push(`legs.`); } else { - r.push(`and stump.`); + r.push(`leg and stump.`); } } else { r.push(`beneath ${his}`); diff --git a/src/npc/descriptions/describeTattoos.js b/src/npc/descriptions/describeTattoos.js index 5d08d394fbc826a4ceeda0d4f5caf7197d824ec2..9ad4b38fc69b7a3b7ffcf1f823b65369656eb26c 100644 --- a/src/npc/descriptions/describeTattoos.js +++ b/src/npc/descriptions/describeTattoos.js @@ -474,11 +474,11 @@ App.Desc.tattoo = function(slave, surface) { case "Asian art": r.push(`A traditional Asian household scene is tattooed on ${his} lower back, showing a rendition of ${slave.slaveName}, dressed in rich silks, having sex with a`); if (V.PC.title === 1) { - r.push(`gentleman`); + r.push(`gentleman.`); } else { - r.push(`lady`); + r.push(`lady.`); } - r.push(`. The slave and the`); + r.push(`The slave and the`); if (V.PC.title === 1) { r.push(`gentleman`); } else { diff --git a/src/npc/descriptions/descriptionWidgets.js b/src/npc/descriptions/descriptionWidgets.js index 2606e331030394e182d96d89d4caf4c160a3a117..01c06dd0e43024e1041e337e0db90e971d5a1382 100644 --- a/src/npc/descriptions/descriptionWidgets.js +++ b/src/npc/descriptions/descriptionWidgets.js @@ -798,12 +798,12 @@ App.Desc.mods = function(slave, surface) { if (slave.fuckdoll !== 0 && !["anus", "lips", "vagina"].includes(surface)) { /* Fuckdoll vulva and anus alone are visible, plus enormous lips */ return App.Desc.piercing(slave, surface); // Most piercings are part of the suit and have appropriate descriptions } - return ( - App.Desc.piercing(slave, surface) + - App.Desc.tattoo(slave, surface) + - App.Desc.brand(slave, surface) + + return [ + App.Desc.piercing(slave, surface), + App.Desc.tattoo(slave, surface), + App.Desc.brand(slave, surface), App.Desc.scar(slave, surface) - ); + ].join(' '); }; /** diff --git a/src/npc/descriptions/style/hairClothing.js b/src/npc/descriptions/style/hairClothing.js index b0b4a402cc8025fde936113b94b0f9407c4aaf84..3d553e04c073a50e93f1739b85605fd93a8484ae 100644 --- a/src/npc/descriptions/style/hairClothing.js +++ b/src/npc/descriptions/style/hairClothing.js @@ -1778,16 +1778,17 @@ App.Desc.hairClothing = function(slave) { r.push(App.Desc.image(slave)); break; case "spats and a tank top": - r.push(`is tied back with a scrunchy into a long ponytail that falls down `); + r.push(`is tied back with a scrunchy into a long ponytail that falls down`); if (hasAnyLegs(slave)) { - r.push(`${his} leg`); + r.push(his); if (hasBothLegs(slave)) { - r.push(`s`); + r.push(`legs.`); + } else { + r.push(`leg.`); } } else { - r.push(`past ${his} torso`); + r.push(`past ${his} torso.`); } - r.push(`.`); break; case "a huipil": r.push(`is tied into a huge ponytail, that leaves ${his} long hair to wave in the wind.`);