diff --git a/src/js/utilsSlave.js b/src/js/utilsSlave.js index 85c52c8384ce9467b1f4b9478c79dc2581eb9603..1ae04edf6fe5f33110a044ab6d537034ec2859e0 100644 --- a/src/js/utilsSlave.js +++ b/src/js/utilsSlave.js @@ -3414,101 +3414,3 @@ globalThis.ChattelReligionistClothingPass = function(outfit) { return fsLovesClothes; } }; - -/** Returns the description of the slave vagina. - * @param {FC.HumanState} slave // admits V.PC can be as argument. - * @param {boolean} withNoun - * @returns {string} - */ -globalThis.vaginaDesc = function(slave, withNoun = true) { - let adj = []; - let noun = ["vagina", "pussy", "cunt", "pussy", "cunt"]; - if (slave.newVag && slave.vagina > 0) { - return either(["hyperelastic", "highly adaptable"]) + withNoun ? " " + jsEither(noun) : ""; - } - if (slave.vagina < 0) { - return "non-existent" + withNoun ? " front hole": ""; - } - switch (slave.vagina) { - case 0: - adj.push(`virgin${slave.counter.reHymen ? "-again" : ""}`, "virgin"); - noun.push("little slit", "flower"); - case 1: - adj.push("tight", "narrow"); - case 2: - adj.push("", "welcoming"); - if (slave.vaginaLube) { - adj.push("wet", "moist"); - } else { - adj.push("dry"); - } - case 3: - case 4: - adj.push("baggy", "loose"); - case 5: - case 6: - adj.push("gaping"); - case 7: - case 8: - case 9: - adj.push("cavernous"); - default: - adj.push("ruined"); - } - if (withNoun) { - if (slave.vagina > 2) { - noun.push("twat") - } - return jsEither(adj) + " " + jsEither(noun); - } - return jsEither(adj); -} - -/** - * Returns the description of the slave penis - * @param {FC.HumanState} slave // admits V.PC can be as argument. - * @param {boolean} withNoun - * @returns {string} - */ -globalThis.dickDesc = function(slave, withNoun = true) { - let adj =[]; - let noun = ["dick", "dick", "cock", "cock", "penis", "prick"] - if (slave.dick === 0) { - return "non-existent" + withNoun ? " virile appendage" : ""; - } - switch (slave.dick) { - case 1: - if (withNoun) { - return jsEither(["micropenis", "tiny prick", "tiny weenie"]); - } - return "tiny"; - case 2: - adj.push("cute"); - noun.push("weenie"); - case 3: - adj.push("", "average", "standard"); - case 4: - adj.push("big"); - case 5: - adj.push("huge"); - case 6: - adj.push("gignatic"); - case 7: - adj.push("massive"); - case 8: - adj.push("titanic", "truly impossing"); - case 9: - adj.push("monstruous", "absurd"); - case 10: - adj.push("inhuman"); - default: - adj.push("hypertrophied"); - } - if (withNoun) { - if (slave.dick > 5) { - noun.push("dong") - } - return jsEither(adj) + " " + jsEither(noun); - } - return jsEither(adj); -} \ No newline at end of file diff --git a/src/npc/descriptions/genericDescriptions.js b/src/npc/descriptions/genericDescriptions.js index a77951663f201e853eca308852d59706bc5ddd26..02f7008d877648237dcd63f93cb91f62f34eb711 100644 --- a/src/npc/descriptions/genericDescriptions.js +++ b/src/npc/descriptions/genericDescriptions.js @@ -21,3 +21,102 @@ globalThis.beautiful = function(slave) { globalThis.pretty = function(slave) { return slave.genes === "XX" ? `pretty` : `good-looking`; }; + + +/** Returns the description of the slave vagina. + * @param {FC.HumanState} slave // admits V.PC can be as argument. + * @param {boolean} withNoun + * @returns {string} + */ +globalThis.vaginaDesc = function(slave, withNoun = true) { + let adj = []; + let noun = ["vagina", "pussy", "cunt", "pussy", "cunt"]; + if (slave.newVag && slave.vagina > 0) { + return `${jsEither(["hyperelastic", "highly adaptable"])}${withNoun ? " " + jsEither(noun) : ""}`; + } + if (slave.vagina < 0) { + return `non-existent${withNoun ? " front hole": ""}`; + } + switch (slave.vagina) { + case 0: + adj.push(`virgin${slave.counter.reHymen ? "-again" : ""}`, "virgin"); + noun.push("little slit", "flower"); + case 1: + adj.push("tight", "narrow"); + case 2: + adj.push("", "welcoming"); + if (slave.vaginaLube) { + adj.push("wet", "moist"); + } else { + adj.push("dry"); + } + case 3: + case 4: + adj.push("baggy", "loose"); + case 5: + case 6: + adj.push("gaping"); + case 7: + case 8: + case 9: + adj.push("cavernous"); + default: + adj.push("ruined"); + } + if (withNoun) { + if (slave.vagina > 2) { + noun.push("twat"); + } + return `${jsEither(adj)} ${jsEither(noun)}`; + } + return `${jsEither(adj)}`; +} + +/** + * Returns the description of the slave penis + * @param {FC.HumanState} slave // admits V.PC can be as argument. + * @param {boolean} withNoun + * @returns {string} + */ +globalThis.dickDesc = function(slave, withNoun = true) { + let adj =[]; + let noun = ["dick", "dick", "cock", "cock", "penis", "prick", "phallus"] + if (slave.dick === 0) { + return `non-existent${withNoun ? " penis" : ""}`; + } + switch (slave.dick) { + case 1: + if (withNoun) { + return `${jsEither(["micropenis", "tiny prick", "tiny weenie"])}`; + } + return "tiny"; + case 2: + adj.push("cute", "small"); + noun.push("weenie"); + case 3: + adj.push("", "average", "standard"); + case 4: + adj.push("big"); + case 5: + adj.push("huge"); + case 6: + adj.push("gignatic"); + case 7: + adj.push("massive"); + case 8: + adj.push("titanic", "truly impossing"); + case 9: + adj.push("monstruous", "absurd"); + case 10: + adj.push("inhuman"); + default: + adj.push("hypertrophied"); + } + if (withNoun) { + if (slave.dick > 5) { + noun.push("dong"); + } + return `${jsEither(adj)} ${jsEither(noun)}`; + } + return `${jsEither(adj)}`; +}