diff --git a/src/descriptions/officeDescription.js b/src/descriptions/officeDescription.js index 8382fe23fe45a2f5cdf1863bc77bc3a33a4b55de..1ac5361673c2c037da9944e1ac77d0e49c2100d3 100644 --- a/src/descriptions/officeDescription.js +++ b/src/descriptions/officeDescription.js @@ -42,7 +42,7 @@ App.Desc.officeDescription = function(lastElement) { } else { r.push(`tiny little erection`); } - r.push(r.pop() + "."); + r.push(r.pop() + "."); } else if (random(1, 3) === 1 && modeledSlave.skill.vaginal >= 100) { if (modeledSlave.vagina > 3) { r.push(`massive vagina`); @@ -86,11 +86,11 @@ App.Desc.officeDescription = function(lastElement) { if (random(1, 4) === 1 && modeledSlave.skill.penetrative >= 100 && canAchieveErection(modeledSlave) && penetrativeSocialUse(modeledSlave) > 70) { r.push(`thrusting ${his} hips and showing off ${his}`); if (modeledSlave.dick < 10) { - r.push(["former","tiny","little","","big","huge","gigantic","massive","truly imposing","monstrous","inhuman"][modeledSlave.dick]); + r.push(["former", "tiny", "little", "", "big", "huge", "gigantic", "massive", "truly imposing", "monstrous", "inhuman"][modeledSlave.dick]); } else { - r.push(`hypertrophied`) + r.push(`hypertrophied`); } - r.push(`erection.`) + r.push(`erection.`); } else if (random(1, 3) === 1 && modeledSlave.skill.vaginal >= 100) { r.push(`lying nude on ${his} back, spreading ${his} legs to`); if (modeledSlave.vagina > 3) { diff --git a/src/endWeek/reports/penthouseReport.js b/src/endWeek/reports/penthouseReport.js index 93b6e502abe1771e64db66721e835825b2b01a8f..ac89933a907b97da30e99846fc99ae633899627f 100644 --- a/src/endWeek/reports/penthouseReport.js +++ b/src/endWeek/reports/penthouseReport.js @@ -109,7 +109,7 @@ App.EndWeek.penthouseReport = function() { r.push(App.SlaveAssignment.recruitGirls(slave)); break; case Job.CLINIC: - r.push(`is given preliminary treatement in ${V.clinicName} while ${his} bed is being prepared.`); + r.push(`is given preliminary treatment in ${V.clinicName} while ${his} bed is being prepared.`); break; case Job.CELLBLOCK: r.push(`is kept in holding until ${his} cell in ${V.cellblockName} is ready.`); diff --git a/src/endWeek/saLongTermEffects.js b/src/endWeek/saLongTermEffects.js index e81b0a89d2841501e1f43c3365b52450dad6e54a..3d193515fcdc33d587a35ff30ad7f60378ab7ddd 100644 --- a/src/endWeek/saLongTermEffects.js +++ b/src/endWeek/saLongTermEffects.js @@ -1558,13 +1558,15 @@ App.SlaveAssignment.longTermEffects = function saLongTermEffects(slave) { * */ function mentalTension(slave) { - const attention = V.personalAttention.task === PersonalAttention.TRAINING && V.personalAttention.slaves.find((s) => s.ID === slave.ID) && !onBedRest(V.PC, true); + const pcTraining = V.personalAttention.task === PersonalAttention.TRAINING && !onBedRest(V.PC, true); + const attentionObjective = V.personalAttention.slaves.find((s) => s.ID === slave.ID)?.objective; + if (slave.behavioralFlaw === BehavioralFlaw.NONE) { if (slave.trust < -20 && slave.devotion <= 50) { if (random(1, 100) > 100 + slave.trust) { const effect = random(1, 4); r.push(`Being so afraid so constantly drives ${him} to find solace in`); - if (attention && ["build devotion", "health", "soften behavioral flaw", "soften sexual flaw", "learn skills"].includes(attention.objective)) { + if (pcTraining && ["build devotion", "health", "soften behavioral flaw", "soften sexual flaw", "learn skills"].includes(attentionObjective)) { r.push(`your attention. Relying on you for <span class="devotion inc">emotional support</span> strengthens ${his} <span class="trust inc">bond</span> with ${getWrittenTitle(slave)}.`); slave.devotion++; slave.trust++; @@ -1589,7 +1591,7 @@ App.SlaveAssignment.longTermEffects = function saLongTermEffects(slave) { if (random(1, 500) > 500 + slave.devotion) { const effect = random(1, 6); r.push(`Being so angry at ${his} life as a sex slave has`); - if (attention && ["build devotion", "health", "soften behavioral flaw", "soften sexual flaw", "learn skills"].includes(attention.objective)) { + if (pcTraining && ["build devotion", "health", "soften behavioral flaw", "soften sexual flaw", "learn skills"].includes(attentionObjective)) { r.push(`forced ${him} to face ${his} problems with you. Lending ${him} support makes it <span class="devotion inc">a little more tolerable.</span>`); slave.devotion++; } else if (effect === 1) { diff --git a/src/endWeek/saServeThePublic.js b/src/endWeek/saServeThePublic.js index 36588d64c7a339c5de8102a7dcf520e2d0e17b3b..3737524d8de6c5fb1208dfb83382d889d6d57d20 100644 --- a/src/endWeek/saServeThePublic.js +++ b/src/endWeek/saServeThePublic.js @@ -1327,7 +1327,7 @@ App.SlaveAssignment.serveThePublic = function saServeThePublic(slave) { } } if (penetrativeSocialUse(slave) >= 20) { - penetrativeUse += Math.random(0, V.penetrativeUseWeight + (slave.skill.penetrative / 30)); + penetrativeUse += random(0, V.penetrativeUseWeight + (slave.skill.penetrative / 30)); } const demand = (oralUse + analUse + vaginalUse + mammaryUse + penetrativeUse); diff --git a/src/endWeek/saServeYourOtherSlaves.js b/src/endWeek/saServeYourOtherSlaves.js index 150c8189db7aefd23925e21184c78f027996877b..2b3ce62c94b73f7c9845be0b40de60292321b96a 100644 --- a/src/endWeek/saServeYourOtherSlaves.js +++ b/src/endWeek/saServeYourOtherSlaves.js @@ -1846,7 +1846,7 @@ App.SlaveAssignment.serveYourOtherSlaves = function saServeYourOtherSlaves(slave increaseSkillFromCumdump(slave, "penetrative", penetrativeUse); } } else if (jobType === "sub") { - const {his2} = getPronouns(domSlave).appendSuffix('2'); + const {his2, he2} = getPronouns(domSlave).appendSuffix('2'); if ((slave.rivalry === 0 || slave.rivalryTarget !== domSlave.ID) && slave.devotion > 20 && domSlave.devotion > 20) { if (oralUse > 0) { if (slave.skill.oral < domSlave.skill.oral) { diff --git a/src/endWeek/saWhore.js b/src/endWeek/saWhore.js index 48066543f149cf2a2dff39df484c01fc4845bc6b..8ce950c1ea212792e4afb3e983b075443cefbc63 100644 --- a/src/endWeek/saWhore.js +++ b/src/endWeek/saWhore.js @@ -1421,7 +1421,7 @@ App.SlaveAssignment.whore = function(slave) { } } if (penetrativeSocialUse(slave) >= 20) { - penetrativeUse += Math.random(0, V.penetrativeUseWeight + (slave.skill.penetrative / 30)); + penetrativeUse += random(0, V.penetrativeUseWeight + (slave.skill.penetrative / 30)); } const demand = (oralUse + analUse + vaginalUse + mammaryUse + penetrativeUse); diff --git a/src/js/extendedFamilyModeJS.js b/src/js/extendedFamilyModeJS.js index 921f22346a14be29a4bebf4f66d9eea869ddc6ac..5fa816c8111cbe4e318a49a496b499f8df184704 100644 --- a/src/js/extendedFamilyModeJS.js +++ b/src/js/extendedFamilyModeJS.js @@ -103,7 +103,7 @@ globalThis.isGrandparentP = function(granddaughter, grandparent) { if (!V.showDistantRelatives) { return false; } - + return isGrandmotherP(granddaughter, grandparent) || isGrandfatherP(granddaughter, grandparent); }; diff --git a/src/js/utilsSlave.js b/src/js/utilsSlave.js index d07db6c78662aedc92cf23be5e13b549349902e8..23275ec9d6bdd6de7fed27d6181d3ee8ffa66ab4 100644 --- a/src/js/utilsSlave.js +++ b/src/js/utilsSlave.js @@ -3252,7 +3252,7 @@ globalThis.adjustedPenSkill = function(slave, specific = false) { } } return Math.clamp(skill, 0, 100); -} +}; /** * Generates a new slave ID that is guaranteed to be unused diff --git a/src/npc/generate/generateMarketSlave.js b/src/npc/generate/generateMarketSlave.js index 5673c3b2a6dfa2d45c080f6e51c33a59a61f2213..e63b7f497ecc041476e073e210712baae4267bc7 100644 --- a/src/npc/generate/generateMarketSlave.js +++ b/src/npc/generate/generateMarketSlave.js @@ -1928,7 +1928,7 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1 slave.balls = jsRandom(19, 30); slave.scrotum = 10; slave.prostate = 2; - slave.skill.penetration = 15; + slave.skill.penetrative = 15; slave.weight = jsRandom(10, 30); slave.waist = jsRandom(0, 100); slave.muscles = jsRandom(80, 100); diff --git a/src/npc/generate/lawCompliance.js b/src/npc/generate/lawCompliance.js index 1701edb3182a6d17a3cb1d8e2e4b89b3f790b0f4..9a6d1f1538cceeffe00ae98a86f7bba4536a32ff 100644 --- a/src/npc/generate/lawCompliance.js +++ b/src/npc/generate/lawCompliance.js @@ -782,7 +782,7 @@ App.Desc.lawCompliance = function(slave, market = 0) { function eugenicsSMRsCount() { const r = []; - const sterilizationReasons = [] + const sterilizationReasons = []; r.push(`As soon as ${he} arrived in the slave market, ${he} was subjected to a battery of testing:`); if (V.policies.SMR.eugenics.intelligenceSMR === 1) { r.push(`an intelligence test,`); diff --git a/src/npc/interaction/fFeelings.js b/src/npc/interaction/fFeelings.js index 3f0b86f4e1a888779ef0ba24822499e497a72e6a..259aac285480b59547ca6b49c6b344393135c680 100644 --- a/src/npc/interaction/fFeelings.js +++ b/src/npc/interaction/fFeelings.js @@ -1850,13 +1850,13 @@ App.Interact.fFeelings = function(slave) { } function relationships() { - const text = []; + const text = []; if (slave.relationship > 0) { const partner = getSlave(slave.relationshipTarget); const { He: He2, His: His2, - he: he2, his: his2, him: him2, daughter: daughter2, sister: sister2, mother: mother2, + he: he2, his: his2, him: him2, daughter: daughter2, mother: mother2, } = getPronouns(partner); const milf2 = ((V.diversePronouns === 1) && (partner.pronoun === App.Data.Pronouns.Kind.male)) ? `DILF` : `MILF`; @@ -1905,21 +1905,17 @@ App.Interact.fFeelings = function(slave) { text.push(`${Spoken(slave, `I — I'm fucking my ${daughter2},"`)} ${he} bursts out, blushing even harder. ${Spoken(slave, `"It's so fucking wrong, but ${he2} has such a hot little body, I can't stop.`)}`); } else if (partner.father === slave.ID) { text.push(`${Spoken(slave, `I — I'm fucking my ${daughter2},"`)} ${he} bursts out, blushing even harder. ${Spoken(slave, `"It's so fucking wrong, but ${he2} has such a hot little body. ${He2} looks so much like ${his2} mother, I can't stop.`)}`); - } else if (areSisters(slave, partner) === 1) { - text.push(`${Spoken(slave, `I — I'm fucking my twin ${sister2},"`)} ${he} bursts out, blushing even harder. ${Spoken(slave, `"It's so fucking wrong, but ${he2}'s so hot, I can't stop.`)}`); - } else if (areSisters(slave, partner) === 2) { - text.push(`${Spoken(slave, `I — I'm fucking my ${sister2},"`)} ${he} bursts out, blushing even harder. ${Spoken(slave, `"It's so fucking wrong, but ${he2}'s so hot, I can't stop.`)}`); - } else if (areSisters(slave, partner) === 3) { - text.push(`${Spoken(slave, `I — I'm fucking my half-${sister2},"`)} ${he} bursts out, blushing even harder. ${Spoken(slave, `"It's so fucking wrong, but ${he2}'s so hot, I can't stop.`)}`); + } else if (areSisters(slave, partner) > 0) { + const sibling = siblingTerm(slave, partner); + text.push(`${Spoken(slave, `I — I'm fucking my ${sibling},"`)} ${he} bursts out, blushing even harder. ${Spoken(slave, `"It's so fucking wrong, but ${he2}'s so hot, I can't stop.`)}`); } else if (areCousins(slave, partner)) { text.push(`${Spoken(slave, `I — I'm fucking my cousin,"`)} ${he} bursts out, blushing even harder. ${Spoken(slave, `"It's so fucking wrong, but ${he2}'s so hot, I can't stop.`)}`); } else if (isAunt(slave, partner)) { - const aunt = (partner.genes === "XY" && useMaleTerms)? `uncle`: `aunt`; + const aunt = relativeTerm(slave, partner); text.push(`${Spoken(slave, `I — I'm fucking my ${aunt},"`)} ${he} bursts out, blushing even harder. ${Spoken(slave, `"It's so fucking wrong, but ${he2}'s so hot, I can't stop.`)}`); } else if (isAunt(partner, slave)) { - const niece = (partner.genes === "XY" && useMaleTerms)? `nephew`: `niece`; + const niece = relativeTerm(slave, partner); text.push(`${Spoken(slave, `I — I'm fucking my ${niece},"`)} ${he} bursts out, blushing even harder. ${Spoken(slave, `"It's so fucking wrong, but ${he2} has such a hot little body, I can't stop.`)}`); - } else if ((slave.actualAge + 14) < partner.actualAge) { text.push(`${Spoken(slave, `${He2}'s old enough to be my ${mother2}."`)} ${He} looks down, blushing a little harder. ${Spoken(slave, `"But I'm lucky, ${he2}'s such a hot ${milf2}.`)}`); } else if ((slave.actualAge - 14) > partner.actualAge) { diff --git a/src/npc/startingGirls/startingGirls.js b/src/npc/startingGirls/startingGirls.js index 82db30eb3d581ac85531a558716029838d9d8fb4..e910ab8f3b2118fd70bedc9b8c33dc5e442bea3d 100644 --- a/src/npc/startingGirls/startingGirls.js +++ b/src/npc/startingGirls/startingGirls.js @@ -2025,9 +2025,9 @@ App.StartingGirls.skills = function(slave, cheat = false) { App.StartingGirls.addSet( options.addOption("Penetrative sex", "penetrative", slave.skill), App.Data.StartingGirls.skill); - if (penetrativeSocialUse() < 20) { - options.addComment("Penetrative skills are usually not considered valuable."); - } + if (penetrativeSocialUse() < 20) { + options.addComment("Penetrative skills are usually not considered valuable."); + } App.StartingGirls.addSet( options.addOption("Prostitution", "whoring", slave.skill), @@ -2041,8 +2041,8 @@ App.StartingGirls.skills = function(slave, cheat = false) { App.Data.StartingGirls.skill); // skill warning - const totalSkill = slave.skill.whoring + slave.skill.entertainment + slave.skill.vaginal - + slave.skill.penetrative + slave.skill.anal + slave.skill.oral + slave.skill.combat; + const totalSkill = slave.skill.whoring + slave.skill.entertainment + slave.skill.vaginal + + slave.skill.penetrative + slave.skill.anal + slave.skill.oral + slave.skill.combat; if (totalSkill > 200 && !cheat) { let comment = ["Starting slaves incur"];