diff --git a/src/data/newGamePlus.js b/src/data/newGamePlus.js index 8d65a18363af980ff37cd8f50a9a66ec0021a613..91e105524858150d8fc1cce7d88d030bd05060d0 100644 --- a/src/data/newGamePlus.js +++ b/src/data/newGamePlus.js @@ -75,15 +75,17 @@ App.Data.NewGamePlus = (function() { .forEach(s => ([s.pregSource + NGPOffset, s.mother + NGPOffset, s.father + NGPOffset] .filter(i => (i in missingTable)) .forEach(i => { - if (needed.indexOf(i) === -1) + if (needed.indexOf(i) === -1) { needed.push(i); + } }))); (V.slaves || []).forEach(s => (s.womb .forEach(f => ([f.fatherID, f.genetics.father, f.genetics.mother] .filter(i => (i in missingTable)) .forEach(i => { - if (needed.indexOf(i) === -1) + if (needed.indexOf(i) === -1) { needed.push(i); + } }))))); while (needed.length > 0) { @@ -93,13 +95,15 @@ App.Data.NewGamePlus = (function() { s.ID -= NGPOffset; if (s.mother in missingTable) { s.mother -= NGPOffset; - if (!(s.mother in newTable) && needed.indexOf(s.mother + NGPOffset) === -1) + if (!(s.mother in newTable) && needed.indexOf(s.mother + NGPOffset) === -1) { needed.push(s.mother + NGPOffset); + } } if (s.father in missingTable) { s.father -= NGPOffset; - if (!(s.father in newTable) && needed.indexOf(s.father + NGPOffset) === -1) + if (!(s.father in newTable) && needed.indexOf(s.father + NGPOffset) === -1) { needed.push(s.father + NGPOffset); + } } } @@ -121,16 +125,20 @@ App.Data.NewGamePlus = (function() { inbreedingCoeff: s.inbreedingCoeff }; Object.values(V.missingTable).forEach(so => { - if (so.mother === s.ID) + if (so.mother === s.ID) { so.mother = oldMissingParentID; - if (so.father === s.ID) + } + if (so.father === s.ID) { so.father = oldMissingParentID; + } }); V.slaves.concat([V.PC]).forEach(so => { - if (so.mother === s.ID) + if (so.mother === s.ID) { so.mother = oldMissingParentID; - if (so.father === s.ID) + } + if (so.father === s.ID) { so.father = oldMissingParentID; + } if (so.assignment === Job.IMPORTED || so.ID === -1) { WombChangeID(so, s.ID, oldMissingParentID); WombChangeGeneID(so, s.ID, oldMissingParentID); @@ -162,7 +170,9 @@ App.Data.NewGamePlus = (function() { fetus.genetics.father = ngpSlaveID(fetus.genetics.father, true); fetus.genetics.mother = ngpSlaveID(fetus.genetics.mother, true); } - slave.rivalry = 0, slave.rivalryTarget = 0, slave.subTarget = 0; + slave.rivalry = 0; + slave.rivalryTarget = 0; + slave.subTarget = 0; slave.drugs = "no drugs"; slave.porn.spending = 0; slave.rules.living = "spare"; diff --git a/src/endWeek/healthFunctions.js b/src/endWeek/healthFunctions.js index f4361019e9018f716ff6bdca16cc58f19dee718f..24177d8338104d508650dab0475c0638b3f4d29e 100644 --- a/src/endWeek/healthFunctions.js +++ b/src/endWeek/healthFunctions.js @@ -134,7 +134,7 @@ globalThis.illness = function(slave) { } } else if (H.illness === 0) { if ([Job.BODYGUARD, Job.DJ, Job.MADAM, Job.ARCADE, Job.GLORYHOLE, Job.CLUB, Job.PUBLIC, Job.WHORE, Job.BROTHEL].includes(slave.assignment)) { // Limit to outside jobs only - if (((Math.min(health_adjusted, 50) + age_modifier) / 3) + bonus_modifiers < 30 / Math.min(curativesBonus + 1, 2)) { // Chance of getting ill 30% at complete default, 20% with a favourable assignment, 15% with curatives or preventatives, 10% with both measures active and a small benefit from effective Nurse screening + if (((Math.min(health_adjusted, 50) + age_modifier) / 3) + bonus_modifiers < 30 / Math.min(curativesBonus + 1, 2)) { // Chance of getting ill 30% at complete default, 20% with a favorable assignment, 15% with curatives or preventatives, 10% with both measures active and a small benefit from effective Nurse screening getIll(slave); r += ` ${He} has come down with <span class="red">${addA(sicknessDegree[H.illness])}.</span>`; } diff --git a/src/endWeek/saChoosesOwnClothes.js b/src/endWeek/saChoosesOwnClothes.js index f59942c5d265bb168672a53b52526c62d52b1b84..a14de84707db32fc91de5d5464620e829fb2f967 100644 --- a/src/endWeek/saChoosesOwnClothes.js +++ b/src/endWeek/saChoosesOwnClothes.js @@ -171,9 +171,9 @@ App.SlaveAssignment.choosesOwnClothes = (function() { break; case "genderFund": if (jsRandom(1, 2) === 1) { - selection = {text: `${he} commonly sees cheerleaders around and instinctually follows along.`, clothes: jsEither(["a cheerleader outfit", "a schoolgirl outfit"])}; + selection = {text: `${he} commonly sees cheerleaders around and instinctively follows along.`, clothes: jsEither(["a cheerleader outfit", "a schoolgirl outfit"])}; } else { - selection = {text: `${he} commonly sees bunnies around and instinctually follows along.`, clothes: "a bunny outfit"}; + selection = {text: `${he} commonly sees bunnies around and instinctively follows along.`, clothes: "a bunny outfit"}; } break; case "paternalist": @@ -186,13 +186,13 @@ App.SlaveAssignment.choosesOwnClothes = (function() { selection = {text: `${he} commonly sees others wearing suits and is drawn to doing so ${himself}.`, clothes: jsEither(["a nice maid outfit", "nice business attire", "slutty business attire"])}; break; case "youth": - selection = {text: `${he} commonly sees schoolgirls around and instinctually follows along.`, clothes: jsEither(["a cheerleader outfit", "a schoolgirl outfit"])}; + selection = {text: `${he} commonly sees schoolgirls around and instinctively follows along.`, clothes: jsEither(["a cheerleader outfit", "a schoolgirl outfit"])}; break; case "physicalIdealist": selection = {text: `${he} commonly sees naked girls around and seldom realizes they are coated in oil.`, clothes: jsEither(["body oil", "no clothing", "no clothing"])}; break; case "pastoralist": - selection = {text: `${he} commonly sees cowgirls around and instinctually follows along.`, clothes: "Western clothing"}; + selection = {text: `${he} commonly sees cowgirls around and instinctively follows along.`, clothes: "Western clothing"}; break; case "bodyPurist": selection = {text: `${he} commonly sees others wearing tight, form-fitting clothes and is drawn to doing so ${himself}.`, clothes: jsEither(["a comfortable bodysuit", "a halter top dress", "a leotard", "a leotard", "a slave gown", "a string bikini", "clubslut netting", "restrictive latex"])}; diff --git a/src/endWeek/saGetMilked.js b/src/endWeek/saGetMilked.js index 215b73f0eae65bcae0d2b1039a14526e01f53e7a..8518977e67c937991cbfd54fe62387203d4a6e09 100644 --- a/src/endWeek/saGetMilked.js +++ b/src/endWeek/saGetMilked.js @@ -19,7 +19,7 @@ App.SlaveAssignment.getMilked = (function() { let cumHormones; let implantEffect; - let he, him, his, hers, himself, girl, loli, He, His; + let he, him, his, He, His; return saGetMilked; @@ -38,7 +38,7 @@ App.SlaveAssignment.getMilked = (function() { if (!preview) { ({ - he, him, his, hers, himself, girl, He, His, loli + he, him, his, He, His } = getPronouns(slave)); gatherStatistics(slave); jobPreface(slave); diff --git a/src/endWeek/saNanny.js b/src/endWeek/saNanny.js index 7a240125c1c05af3474e5d790c6e543317dc038d..dc52bdc71065f8e6d0e08465293051fedf73035d 100644 --- a/src/endWeek/saNanny.js +++ b/src/endWeek/saNanny.js @@ -6,7 +6,7 @@ // TODO: redo this App.SlaveAssignment.nanny = function(slave) { const - { he, him, his, He, His } = getPronouns(slave), + {he, him, his, He, His} = getPronouns(slave), child = `child${V.nurseryChildren > 0 ? `ren` : ``}`; let t = `works as a nanny. ${He} ${V.nurseryChildren ? diff --git a/src/endWeek/saPleaseYou.js b/src/endWeek/saPleaseYou.js index 379fabf069492a9b3ffea295cd45d8c269c6c126..75fcbc1c3eb4afe282b0b9ca354f973384ff68d5 100644 --- a/src/endWeek/saPleaseYou.js +++ b/src/endWeek/saPleaseYou.js @@ -130,7 +130,7 @@ App.SlaveAssignment.pleaseYou = (function() { } else if (slave.trust < -20) { r.push(`in terrified compliance with your use of ${his} pussy.`); } else if (slave.devotion < -20) { - r.push(`alternately struggling and lying corpselike as you use ${his} pussy.`); + r.push(`alternately struggling and lying corpse-like as you use ${his} pussy.`); } else if (slave.devotion <= 20) { r.push(`reluctantly accepting your use of ${his} pussy.`); } else if (slave.fetishKnown === 1 && slave.fetish === "submissive") { @@ -478,7 +478,7 @@ App.SlaveAssignment.pleaseYou = (function() { } } if (V.PC.vagina !== -1) { - r.push(`face covered in your pussyjuice.`); + r.push(`face covered in your pussy juice.`); } if (V.PC.dick !== 0 && (V.fuckSlaves <= (V.PC.sexualEnergy / 2 + (V.PC.balls - 3)))) { r.push(`Your balls produce so much cum for ${him} that ${he} has replaced half ${his} diet with your cum, and you often leave ${him} dizzy with a face and chest covered in your sticky pearly semen.`); @@ -1019,7 +1019,7 @@ App.SlaveAssignment.pleaseYou = (function() { if (slave.trust < -20) { r.push(`in fear under your gravid bulk as you forcibly ride ${his} dick in a futile attempt to cool your raging hormones.`); } else if (slave.devotion < -20) { - r.push(`alternately struggling or lying corpselike under your gravid bulk as you forcibly ride ${his} dick in a futile attempt to cool your raging hormones.`); + r.push(`alternately struggling or lying corpse-like under your gravid bulk as you forcibly ride ${his} dick in a futile attempt to cool your raging hormones.`); } else if (slave.devotion <= 20) { r.push(`reluctantly trying to avoid having to take all of your pregnancy weight while not pissing you off whenever you ride ${his} dick in a futile attempt to cool your raging hormones.`); } else if (slave.fetishKnown === 1 && slave.fetish === "submissive") { @@ -1078,7 +1078,7 @@ App.SlaveAssignment.pleaseYou = (function() { if (slave.trust < -20) { r.push(`in terrified compliance with your use of ${his} dick.`); } else if (slave.devotion < -20) { - r.push(`alternately struggling or lying corpselike as you ride ${his} dick.`); + r.push(`alternately struggling or lying corpse-like as you ride ${his} dick.`); } else if (slave.devotion <= 20) { r.push(`reluctantly accepting your use of ${his} dick.`); } else if (slave.fetishKnown === 1 && slave.fetish === "submissive") { diff --git a/src/endWeek/saPorn.js b/src/endWeek/saPorn.js index 7d6c236b5adf03f92d16b98a503146f4de7f186a..0a584229d3cde97b1a575b7f6fd00cf7aeb419ba 100644 --- a/src/endWeek/saPorn.js +++ b/src/endWeek/saPorn.js @@ -2,7 +2,7 @@ App.SlaveAssignment.porn = (function() { "use strict"; let r; - let he, him, his, hers, himself, girl, loli, He, His; + let he, him, his, himself, He, His; let decayRate; let viewership; let viewerSoaking; @@ -15,7 +15,7 @@ App.SlaveAssignment.porn = (function() { */ function saPorn(slave) { ({ - he, him, his, hers, himself, girl, He, His, loli + he, him, his, himself, He, His } = getPronouns(slave)); r = ` `; diff --git a/src/endWeek/saServeThePublic.js b/src/endWeek/saServeThePublic.js index 0ba7049fd4e6f60cc534eb59b12ddcef99ea34e0..b6ac4045a2b467944934a9a1cb8473488232a535 100644 --- a/src/endWeek/saServeThePublic.js +++ b/src/endWeek/saServeThePublic.js @@ -103,39 +103,39 @@ App.SlaveAssignment.serveThePublic = (function() { } // ads if (V.clubAdsSpending !== 0) { - const adcats = App.Ads.Categories; // for brevity - if (V.clubAdsStacked === 1 && adcats.assetSize.classifySlave(slave) === 1) { + const adCats = App.Ads.Categories; // for brevity + if (V.clubAdsStacked === 1 && adCats.assetSize.classifySlave(slave) === 1) { r += ` ${His} stacked body fits ${V.clubName}'s ad campaign, getting ${him} more attention.`; - } else if (V.clubAdsStacked === -1 && adcats.assetSize.classifySlave(slave) === -1) { + } else if (V.clubAdsStacked === -1 && adCats.assetSize.classifySlave(slave) === -1) { r += ` ${His} slim body fits ${V.clubName}'s ad campaign, getting ${him} more attention.`; } - if (V.clubAdsPreg === 1 && adcats.preg.classifySlave(slave) === 1) { + if (V.clubAdsPreg === 1 && adCats.preg.classifySlave(slave) === 1) { r += ` ${His} gravid body fits ${V.clubName}'s ad campaign, getting ${him} more attention.`; - } else if (V.clubAdsPreg === -1 && adcats.preg.classifySlave(slave) === -1) { + } else if (V.clubAdsPreg === -1 && adCats.preg.classifySlave(slave) === -1) { r += ` ${His} flat belly fits ${V.clubName}'s ad campaign, getting ${him} more attention.`; } - if (V.clubAdsModded === 1 && adcats.mods.classifySlave(slave) === 1) { + if (V.clubAdsModded === 1 && adCats.mods.classifySlave(slave) === 1) { r += ` Body art like ${hers} is a major draw.`; - } else if (V.clubAdsModded === -1 && adcats.mods.classifySlave(slave) === -1) { + } else if (V.clubAdsModded === -1 && adCats.mods.classifySlave(slave) === -1) { r += ` Very clean bodies like ${hers} are a major draw.`; } - if (V.clubAdsImplanted === 1 && adcats.assetOrigin.classifySlave(slave) === 1) { + if (V.clubAdsImplanted === 1 && adCats.assetOrigin.classifySlave(slave) === 1) { r += ` Many citizens come to ${V.clubName} looking to fuck a plastic slut like ${him}.`; - } else if (V.clubAdsImplanted === -1 && adcats.assetOrigin.classifySlave(slave) === -1) { + } else if (V.clubAdsImplanted === -1 && adCats.assetOrigin.classifySlave(slave) === -1) { r += ` Many citizens come to ${V.clubName} looking to get with a natural ${girl} like ${him}.`; } - if (V.clubAdsOld === 1 && adcats.age.classifySlave(slave) === 1) { + if (V.clubAdsOld === 1 && adCats.age.classifySlave(slave) === 1) { r += ` ${He}'s perfect for ${V.clubName}, which practically exists to match citizens up with mature slaves.`; - } else if (V.clubAdsOld === -1 && adcats.age.classifySlave(slave) === -1) { + } else if (V.clubAdsOld === -1 && adCats.age.classifySlave(slave) === -1) { r += ` ${He}'s perfect for ${V.clubName}, which practically exists to match citizens up with young slaves.`; - } else if (V.clubAdsOld === -2 && adcats.age.classifySlave(slave) === -2) { + } else if (V.clubAdsOld === -2 && adCats.age.classifySlave(slave) === -2) { r += ` ${He}'s perfect for ${V.clubName}, which practically exists to match citizens up with teenage slaves.`; - } else if (V.clubAdsOld === -3 && adcats.age.classifySlave(slave) === -3) { + } else if (V.clubAdsOld === -3 && adCats.age.classifySlave(slave) === -3) { r += ` ${He}'s perfect for ${V.clubName}, which practically exists to match citizens up with ${loli} slaves.`; } - if (V.clubAdsXX === 1 && adcats.genitalia.classifySlave(slave) === 1) { + if (V.clubAdsXX === 1 && adCats.genitalia.classifySlave(slave) === 1) { r += ` Almost everyone who comes to ${V.clubName} is looking to fuck a ${girl} like ${him}.`; - } else if (V.clubAdsXX === -1 && adcats.genitalia.classifySlave(slave) === -1) { + } else if (V.clubAdsXX === -1 && adCats.genitalia.classifySlave(slave) === -1) { r += ` Almost everyone who comes to ${V.clubName} is looking to poke a ${girl} who cums when buttfucked.`; } } @@ -873,7 +873,7 @@ App.SlaveAssignment.serveThePublic = (function() { r += ` apparent`; } r += ` pregnancy gets ${him} lots of attention.`; - } else if (slave.bellyAccessory.FSRepopulationFocusPregPolicy === 1 && slave.bellyPreg >= 1500) { + } else if (arcology.FSRepopulationFocusPregPolicy === 1 && slave.bellyPreg >= 1500) { r += ` It's currently trendy to be ripe with child, so ${his} pregnancy gets ${him} lots of attention.`; } else if (arcology.FSRestart !== "unset") { r += ` In the new culture of ${arcology.name}, ${his}`; diff --git a/src/endWeek/saServeYourOtherSlaves.js b/src/endWeek/saServeYourOtherSlaves.js index 46d73d5fa14b874532dbbffcb8e72a77c91be374..d67400c7b324548e4f0605e2d67e563694695d9a 100644 --- a/src/endWeek/saServeYourOtherSlaves.js +++ b/src/endWeek/saServeYourOtherSlaves.js @@ -1596,7 +1596,7 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() { if (slave.fetishKnown) { r.push(`Having ${his} fertile pussy serve as someone's toy really satisfies ${subName}.`); } else { - r.push(`Having ${his} fertile pussy used exposes ${him} for the <span class="lightcoral">pregnancy fetishest ${he} is.</span>`); + r.push(`Having ${his} fertile pussy used exposes ${him} for the <span class="lightcoral">pregnancy fetishist ${he} is.</span>`); slave.fetishKnown = 1; } slave.need = 0; @@ -1604,7 +1604,7 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() { if (slave.fetishKnown) { r.push(`Having ${his} fertile ass serve as someone's toy really satisfies ${subName}.`); } else { - r.push(`Having ${his} fertile asspussy used exposes ${him} for the <span class="lightcoral">pregnancy fetishest ${he} is.</span>`); + r.push(`Having ${his} fertile asspussy used exposes ${him} for the <span class="lightcoral">pregnancy fetishist ${he} is.</span>`); slave.fetishKnown = 1; } slave.need = 0; diff --git a/src/endWeek/saWhore.js b/src/endWeek/saWhore.js index 35c566e26f2eb2bbe123fbced19389aab6bdcce5..18970a8cfc5eeadf1a5e4c7996b32350be727852 100644 --- a/src/endWeek/saWhore.js +++ b/src/endWeek/saWhore.js @@ -138,39 +138,39 @@ App.SlaveAssignment.whore = (function() { } // ads if (V.brothelAdsSpending !== 0) { - const adcats = App.Ads.Categories; // for brevity - if (V.brothelAdsStacked === 1 && adcats.assetSize.classifySlave(slave) === 1) { + const adCats = App.Ads.Categories; // for brevity + if (V.brothelAdsStacked === 1 && adCats.assetSize.classifySlave(slave) === 1) { r += ` ${His} stacked body fits ${V.brothelName}'s ad campaign, getting ${him} more business.`; - } else if (V.brothelAdsStacked === -1 && adcats.assetSize.classifySlave(slave) === -1) { + } else if (V.brothelAdsStacked === -1 && adCats.assetSize.classifySlave(slave) === -1) { r += ` ${His} slim body fits ${V.brothelName}'s ad campaign, getting ${him} more business.`; } - if (V.brothelAdsPreg === 1 && adcats.preg.classifySlave(slave) === 1) { + if (V.brothelAdsPreg === 1 && adCats.preg.classifySlave(slave) === 1) { r += ` ${His} gravid body fits ${V.brothelName}'s ad campaign, getting ${him} more attention.`; - } else if (V.brothelAdsPreg === -1 && adcats.preg.classifySlave(slave) === -1) { + } else if (V.brothelAdsPreg === -1 && adCats.preg.classifySlave(slave) === -1) { r += ` ${His} flat belly fits ${V.brothelName}'s ad campaign, getting ${him} more attention.`; } - if (V.brothelAdsModded === 1 && adcats.mods.classifySlave(slave) === 1) { + if (V.brothelAdsModded === 1 && adCats.mods.classifySlave(slave) === 1) { r += ` Body art like ${hers} is a major draw.`; - } else if (V.brothelAdsModded === -1 && adcats.mods.classifySlave(slave) === -1) { + } else if (V.brothelAdsModded === -1 && adCats.mods.classifySlave(slave) === -1) { r += ` Very clean bodies like ${hers} are a major draw.`; } - if (V.brothelAdsImplanted === 1 && adcats.assetOrigin.classifySlave(slave) === 1) { + if (V.brothelAdsImplanted === 1 && adCats.assetOrigin.classifySlave(slave) === 1) { r += ` Many citizens come to ${V.brothelName} looking to rent a plastic slut like ${him}.`; - } else if (V.brothelAdsImplanted === -1 && adcats.assetOrigin.classifySlave(slave) === -1) { + } else if (V.brothelAdsImplanted === -1 && adCats.assetOrigin.classifySlave(slave) === -1) { r += ` Many citizens come to ${V.brothelName} looking to play with a natural ${girl} like ${him}.`; } - if (V.brothelAdsOld === 1 && adcats.age.classifySlave(slave) === 1) { + if (V.brothelAdsOld === 1 && adCats.age.classifySlave(slave) === 1) { r += ` ${He}'s perfect for ${V.brothelName}, whose brand is mature slaves.`; - } else if (V.brothelAdsOld === -1 && adcats.age.classifySlave(slave) === -1) { + } else if (V.brothelAdsOld === -1 && adCats.age.classifySlave(slave) === -1) { r += ` ${He}'s perfect for ${V.brothelName}, whose brand is young slaves.`; - } else if (V.brothelAdsOld === -2 && adcats.age.classifySlave(slave) === -2) { + } else if (V.brothelAdsOld === -2 && adCats.age.classifySlave(slave) === -2) { r += ` ${He}'s perfect for ${V.brothelName}, whose brand is teenage slaves.`; - } else if (V.brothelAdsOld === -3 && adcats.age.classifySlave(slave) === -3) { + } else if (V.brothelAdsOld === -3 && adCats.age.classifySlave(slave) === -3) { r += ` ${He}'s perfect for ${V.brothelName}, whose brand is ${loli} slaves.`; } - if (V.brothelAdsXX === 1 && adcats.genitalia.classifySlave(slave) === 1) { + if (V.brothelAdsXX === 1 && adCats.genitalia.classifySlave(slave) === 1) { r += ` Almost everyone who comes to ${V.brothelName} is looking to fuck a ${girl} like ${him}.`; - } else if (V.brothelAdsXX === -1 && adcats.genitalia.classifySlave(slave) === -1) { + } else if (V.brothelAdsXX === -1 && adCats.genitalia.classifySlave(slave) === -1) { r += ` Almost everyone who comes to ${V.brothelName} is looking to pound a ${girl} who cums when buttfucked.`; } } diff --git a/src/endWeek/saWorkTheFarm.js b/src/endWeek/saWorkTheFarm.js index 4bd5a6f62b8194887c7d6bf662885b8f5cbe24ed..0e23f8b83a9dd2776262850076123f7ec2dd3257 100644 --- a/src/endWeek/saWorkTheFarm.js +++ b/src/endWeek/saWorkTheFarm.js @@ -8,7 +8,7 @@ App.SlaveAssignment.workTheFarm = function(slave) { let frag = document.createDocumentFragment(); const - { he, him, his, He, His } = getPronouns(slave), + {he, him, his, He, His} = getPronouns(slave), incomeStats = getSlaveStatisticData(slave, V.facility.farmyard), slaveApproves = () => sexualQuirks.includes(slave.sexualQuirk) || behavioralQuirks.includes(slave.behavioralQuirk) || fetishes.includes(slave.fetish), diff --git a/src/endWeek/sexualServices.js b/src/endWeek/sexualServices.js index a54a7d69e69a81376a9553b0d13c9ae3e6952e35..03209ba35478f8f2d42bf86120d6ae72d5897661 100644 --- a/src/endWeek/sexualServices.js +++ b/src/endWeek/sexualServices.js @@ -32,9 +32,15 @@ App.EndWeek.computeSexualServicesModel = function(renderContainer) { arcadeSupply = {lowerClass: 0, middleClass: 0, upperClass: 0}, clubSupply = {lowerClass: 0, middleClass: 0}; - V.whorePriceAdjustment = {lowerClass: 0, middleClass: 0, upperClass: 0, topClass: 0}; - V.NPCMarketShare = {lowerClass: 0, middleClass: 0, upperClass: 0, topClass: 0}; - V.sexDemandResult = {lowerClass: 0, middleClass: 0, upperClass: 0, topClass: 0}; + V.whorePriceAdjustment = { + lowerClass: 0, middleClass: 0, upperClass: 0, topClass: 0 + }; + V.NPCMarketShare = { + lowerClass: 0, middleClass: 0, upperClass: 0, topClass: 0 + }; + V.sexDemandResult = { + lowerClass: 0, middleClass: 0, upperClass: 0, topClass: 0 + }; V.slaveJobValues = slaveJobValues(lowerClassSexDemandRef, middleClassSexDemandRef, upperClassSexDemandRef, topClassSexDemandRef); let lowerClassArcadeSexDemand = 0; diff --git a/src/events/RESS/devotedEducated.js b/src/events/RESS/devotedEducated.js index a14cc6ec5334ab36443f0268e74579ee84c40ca4..dc599dd7351b72fe3d2a82277fa56497ae451bb5 100644 --- a/src/events/RESS/devotedEducated.js +++ b/src/events/RESS/devotedEducated.js @@ -117,7 +117,7 @@ App.Events.RESSDevotedEducated = class RESSDevotedEducated extends App.Events.Ba App.Events.addParagraph(node, t); t = []; - seX(eventSlave, "oral", "public", "penetrative", jsRandom(65,80)); + seX(eventSlave, "oral", "public", "penetrative", jsRandom(65, 80)); repX(500, "event", eventSlave); healthDamage(eventSlave, 10); return t; diff --git a/src/events/RESS/moistPussy.js b/src/events/RESS/moistPussy.js index b0ac5aeee8b922a2ce5bad936e5d9a2df037e9ce..9d3c7648699f7a2149a73fd7f0b2fec565706550 100644 --- a/src/events/RESS/moistPussy.js +++ b/src/events/RESS/moistPussy.js @@ -257,7 +257,7 @@ App.Events.RESSMoistPussy = class RESSMoistPussy extends App.Events.BaseEvent { if (eventSlave.lips > 95) { t.push(`facepussy`); } else if (eventSlave.lips > 40) { - t.push(`pillowlike`); + t.push(`pillow-like`); } else if (eventSlave.lips > 10) { t.push(`soft`); } else { diff --git a/src/events/intro/initNationalities.js b/src/events/intro/initNationalities.js index ecb9fbe0686d0235dd9f121954946eb463fce6ea..f51b5c17c7e3822af12a1cdd97a7fde0b8273650 100644 --- a/src/events/intro/initNationalities.js +++ b/src/events/intro/initNationalities.js @@ -145,11 +145,115 @@ App.Intro.initNationalities = function() { V.neighboringArcologies = variableAsNumber(V.neighboringArcologies, 0, 8, 3); for (let i = 0; i <= V.neighboringArcologies; i++) { /** @type {FC.ArcologyState} */ - const newArcology = {name: "", direction: "north", government: "an individual", leaderID: 0, honeymoon: 0, prosperity: 50, ownership: 50, minority: 20, PCminority: 0, demandFactor: 0, FSSupremacist: "unset", FSSupremacistRace: 0, FSSubjugationist: "unset", FSSubjugationistRace: 0, FSGenderRadicalist: "unset", FSGenderFundamentalist: "unset", FSPaternalist: "unset", FSDegradationist: "unset", FSBodyPurist: "unset", FSTransformationFetishist: "unset", FSYouthPreferentialist: "unset", FSMaturityPreferentialist: "unset", FSSlimnessEnthusiast: "unset", FSAssetExpansionist: "unset", FSPastoralist: "unset", FSPhysicalIdealist: "unset", FSChattelReligionist: "unset", FSRomanRevivalist: "unset", FSAztecRevivalist: "unset", FSEgyptianRevivalist: "unset", FSEdoRevivalist: "unset", FSArabianRevivalist: "unset", FSChineseRevivalist: "unset", FSNull: "unset", embargo: 1, embargoTarget: -1, influenceTarget: -1, influenceBonus: 0, CyberEconomic: 1, CyberEconomicTarget: -1, CyberReputation: 1, CyberReputationTarget: -1, rival: 0, FSRestart: "unset", FSRepopulationFocus: "unset", FSHedonisticDecadence: "unset", FSIntellectualDependency: "unset", FSSlaveProfessionalism: "unset", FSPetiteAdmiration: "unset", FSStatuesqueGlorification: "unset", FSCummunism: "unset", FSIncestFetishist: "unset", FSGenderRadicalistResearch: 0, FSGenderFundamentalistResearch: 0, FSPaternalistResearch: 0, FSDegradationistResearch: 0, FSBodyPuristResearch: 0, FSTransformationFetishistResearch: 0, FSYouthPreferentialistResearch: 0, FSMaturityPreferentialistResearch: 0, FSSlimnessEnthusiastResearch: 0, FSAssetExpansionistResearch: 0, FSPastoralistResearch: 0, FSPhysicalIdealistResearch: 0, FSRepopulationFocusResearch: 0, FSRestartResearch: 0, FSHedonisticDecadenceResearch: 0, FSHedonisticDecadenceDietResearch: 0, FSIntellectualDependencyResearch: 0, FSSlaveProfessionalismResearch: 0, FSPetiteAdmirationResearch: 0, FSStatuesqueGlorificationResearch: 0, FSCummunismResearch: 0, FSIncestFetishistResearch: 0}; + const newArcology = { + name: "", + direction: "north", + government: "an individual", + leaderID: 0, + honeymoon: 0, + prosperity: 50, + ownership: 50, + minority: 20, + PCminority: 0, + demandFactor: 0, + FSSupremacist: "unset", + FSSupremacistRace: 0, + FSSubjugationist: "unset", + FSSubjugationistRace: 0, + FSGenderRadicalist: "unset", + FSGenderFundamentalist: "unset", + FSPaternalist: "unset", + FSDegradationist: "unset", + FSBodyPurist: "unset", + FSTransformationFetishist: "unset", + FSYouthPreferentialist: "unset", + FSMaturityPreferentialist: "unset", + FSSlimnessEnthusiast: "unset", + FSAssetExpansionist: "unset", + FSPastoralist: "unset", + FSPhysicalIdealist: "unset", + FSChattelReligionist: "unset", + FSRomanRevivalist: "unset", + FSAztecRevivalist: "unset", + FSEgyptianRevivalist: "unset", + FSEdoRevivalist: "unset", + FSArabianRevivalist: "unset", + FSChineseRevivalist: "unset", + FSNull: "unset", + embargo: 1, + embargoTarget: -1, + influenceTarget: -1, + influenceBonus: 0, + CyberEconomic: 1, + CyberEconomicTarget: -1, + CyberReputation: 1, + CyberReputationTarget: -1, + rival: 0, + FSRestart: "unset", + FSRepopulationFocus: "unset", + FSHedonisticDecadence: "unset", + FSIntellectualDependency: "unset", + FSSlaveProfessionalism: "unset", + FSPetiteAdmiration: "unset", + FSStatuesqueGlorification: "unset", + FSCummunism: "unset", + FSIncestFetishist: "unset", + FSGenderRadicalistResearch: 0, + FSGenderFundamentalistResearch: 0, + FSPaternalistResearch: 0, + FSDegradationistResearch: 0, + FSBodyPuristResearch: 0, + FSTransformationFetishistResearch: 0, + FSYouthPreferentialistResearch: 0, + FSMaturityPreferentialistResearch: 0, + FSSlimnessEnthusiastResearch: 0, + FSAssetExpansionistResearch: 0, + FSPastoralistResearch: 0, + FSPhysicalIdealistResearch: 0, + FSRepopulationFocusResearch: 0, + FSRestartResearch: 0, + FSHedonisticDecadenceResearch: 0, + FSHedonisticDecadenceDietResearch: 0, + FSIntellectualDependencyResearch: 0, + FSSlaveProfessionalismResearch: 0, + FSPetiteAdmirationResearch: 0, + FSStatuesqueGlorificationResearch: 0, + FSCummunismResearch: 0, + FSIncestFetishistResearch: 0 + }; if (i === 0) { newArcology.direction = 0; newArcology.name = "Arcology X-4"; - newArcology.FSSupremacistDecoration = 20, newArcology.FSSubjugationistDecoration = 20, newArcology.FSGenderRadicalistDecoration = 20, newArcology.FSGenderFundamentalistDecoration = 20, newArcology.FSPaternalistDecoration = 20, newArcology.FSDegradationistDecoration = 20, newArcology.FSBodyPuristDecoration = 20, newArcology.FSTransformationFetishistDecoration = 20, newArcology.FSYouthPreferentialistDecoration = 20, newArcology.FSMaturityPreferentialistDecoration = 20, newArcology.FSSlimnessEnthusiastDecoration = 20, newArcology.FSAssetExpansionistDecoration = 20, newArcology.FSPastoralistDecoration = 20, newArcology.FSPhysicalIdealistDecoration = 20, newArcology.FSChattelReligionistDecoration = 20, newArcology.FSRomanRevivalistDecoration = 20, newArcology.FSAztecRevivalistDecoration = 20, newArcology.FSEgyptianRevivalistDecoration = 20, newArcology.FSEdoRevivalistDecoration = 20, newArcology.FSArabianRevivalistDecoration = 20, newArcology.FSChineseRevivalistDecoration = 20, newArcology.FSRepopulationFocusDecoration = 20, newArcology.FSRestartDecoration = 20, newArcology.FSHedonisticDecadenceDecoration = 20, newArcology.FSIntellectualDependencyDecoration = 20, newArcology.FSSlaveProfessionalismDecoration = 20, newArcology.FSPetiteAdmirationDecoration = 20, newArcology.FSStatuesqueGlorificationDecoration = 20, newArcology.FSCummunismDecoration = 20, newArcology.FSIncestFetishistDecoration = 20; + newArcology.FSSupremacistDecoration = 20; + newArcology.FSSubjugationistDecoration = 20; + newArcology.FSGenderRadicalistDecoration = 20; + newArcology.FSGenderFundamentalistDecoration = 20; + newArcology.FSPaternalistDecoration = 20; + newArcology.FSDegradationistDecoration = 20; + newArcology.FSBodyPuristDecoration = 20; + newArcology.FSTransformationFetishistDecoration = 20; + newArcology.FSYouthPreferentialistDecoration = 20; + newArcology.FSMaturityPreferentialistDecoration = 20; + newArcology.FSSlimnessEnthusiastDecoration = 20; + newArcology.FSAssetExpansionistDecoration = 20; + newArcology.FSPastoralistDecoration = 20; + newArcology.FSPhysicalIdealistDecoration = 20; + newArcology.FSChattelReligionistDecoration = 20; + newArcology.FSRomanRevivalistDecoration = 20; + newArcology.FSAztecRevivalistDecoration = 20; + newArcology.FSEgyptianRevivalistDecoration = 20; + newArcology.FSEdoRevivalistDecoration = 20; + newArcology.FSArabianRevivalistDecoration = 20; + newArcology.FSChineseRevivalistDecoration = 20; + newArcology.FSRepopulationFocusDecoration = 20; + newArcology.FSRestartDecoration = 20; + newArcology.FSHedonisticDecadenceDecoration = 20; + newArcology.FSIntellectualDependencyDecoration = 20; + newArcology.FSSlaveProfessionalismDecoration = 20; + newArcology.FSPetiteAdmirationDecoration = 20; + newArcology.FSStatuesqueGlorificationDecoration = 20; + newArcology.FSCummunismDecoration = 20; + newArcology.FSIncestFetishistDecoration = 20; if (V.targetArcology.fs !== "New") { V.FSAnnounced = 1; V.FSGotRepCredits = 1; diff --git a/src/events/reRelativeRecruiter.js b/src/events/reRelativeRecruiter.js index 19d758bbabba2f9caf7d9d179c1c3ffa3ad0b706..d582c49a6eed26ae4d1a6b3ab76fe0ba8ad1fa9d 100644 --- a/src/events/reRelativeRecruiter.js +++ b/src/events/reRelativeRecruiter.js @@ -603,7 +603,7 @@ App.Events.RERelativeRecruiter = class RERelativeRecruiter extends App.Events.Ba // kill the cheat div (no going back now!) $(cheatDiv).empty(); - // the new slave is already set up to be related to the exising slave, but we're responsible for making sure the existing slave (and any others in our stable) gets *their* relatives set correctly + // the new slave is already set up to be related to the existing slave, but we're responsible for making sure the existing slave (and any others in our stable) gets *their* relatives set correctly switch (_this.params.relative) { case "mother": { setUnknownParents(eventSlave, {mother: V.activeSlave.ID} ); diff --git a/src/gui/css/mainStyleSheet.css b/src/gui/css/mainStyleSheet.css index fe3fc399caa0117803d92ed880ba2c5f24de8323..02a8878c831774638822fc8d7d1d64788775c0c9 100644 --- a/src/gui/css/mainStyleSheet.css +++ b/src/gui/css/mainStyleSheet.css @@ -214,7 +214,7 @@ span.zeroButton > a:hover { text-decoration: none; } .orchid, .orchid a { color: orchid } /* used once (wrong? */ .pink, .pink a, .slave.name.simple { color: pink } /* also fetish start ??? , and a lot of other stuff */ .red, .red a, .health.dec, .health.dec a, .cash.dec, .cash.dec a, .flaw.gain, .flaw.gain a, .error, .error a, .elites.loss, .elites.loss a, .reputation.dec, .reputation.dec a, .warning, .warning a { color: red } /* also generally bad stuff */ -/* note: .error is for unexpected behaviour, .warning for player feedback */ +/* note: .error is for unexpected behavior, .warning for player feedback */ .seagreen, .seagreen a, .trust.prof-trusting, .trust.prof-trusting a { color: seagreen } .springgreen, .springgreen a, .skill.player, .skill.player a { color: springgreen } .tan, .tan a { color: tan } /* some ethnicity */ diff --git a/src/interaction/rename.js b/src/interaction/rename.js index 6785d52bfc8cafc070cab8f6d31b0ce0fe7005d8..c5c8f696980e4ed7d94123d4ad2af6c436224e15 100644 --- a/src/interaction/rename.js +++ b/src/interaction/rename.js @@ -6,7 +6,9 @@ */ App.UI.SlaveInteract.rename = function(slave, {oldName = "", oldSurname = ""} = {}) { const r = []; - const {He, he, His, his, him, girl, himself, wife} = getPronouns(slave); + const { + He, he, His, his, him, girl, himself, wife + } = getPronouns(slave); if (slave.slaveName === oldName && slave.slaveSurname === oldSurname) { return; } else { diff --git a/src/js/assayJS.js b/src/js/assayJS.js index 3fdb77c704a0a599b54747caaeca5d0150dac7d4..6495552cc875a81f5644908565661979d17db572 100644 --- a/src/js/assayJS.js +++ b/src/js/assayJS.js @@ -648,7 +648,7 @@ globalThis.getEnunciation = function(slave) { return ret; }; -/** Write all of the enunciations used by a slave into global state data for use by sugarcube macros. +/** Write all of the enunciations used by a slave into global state data for use by SugarCube macros. * @param {App.Entity.SlaveState} slave */ globalThis.Enunciate = function(slave) { @@ -905,7 +905,7 @@ globalThis.SlaveTitle = function(slave) { r = `${r} fuckdoll`; } } else { - r = "slave"; /* I don't tihnk there is an 'else'? */ + r = "slave"; /* I don't think there is an 'else'? */ if ((slave.dick === 0) && (slave.vagina === -1)) { /* NULLS */ r = "null"; diff --git a/src/pregmod/FCTV/FCTV.js b/src/pregmod/FCTV/FCTV.js index 7433d13498b35385a3b7db1cc59268533c33b8ed..2469b35872fc79c7cd0bc7b88a0af93c0b252210 100644 --- a/src/pregmod/FCTV/FCTV.js +++ b/src/pregmod/FCTV/FCTV.js @@ -38,6 +38,7 @@ globalThis.FCTV = (function() { /** * checks value of selected channel in relation to an arbitrary number. Have we watched it more/less/same than i. + * @param {number} selectedChannel * @param {number} i * @param {string} operation eq/gt/lt: equals/greater than/less than. * @returns {boolean} @@ -201,7 +202,7 @@ globalThis.FctvDisplay = function({usedRemote = 0, seeAll = 0, selectedChannel = } } - buttons.splice(4, 0, "4"); // 4 is no longer a real channel, so put in a dummy button. 404, channel not found. + buttons.splice(4, 0, App.UI.DOM.makeElement("span", "4")); // 4 is no longer a real channel, so put in a dummy button. 404, channel not found. div = document.createElement("div"); div.classList.add("FctvRemote-numbers", /* "FctvRemote-button" */); diff --git a/src/pregmod/FCTV/FCTVshows.js b/src/pregmod/FCTV/FCTVshows.js index ee9fcfead2ae5a6c875024ac782a0a0ac4dccbde..e539f3faf8b0711727b15d334e7e19c98074315e 100644 --- a/src/pregmod/FCTV/FCTVshows.js +++ b/src/pregmod/FCTV/FCTVshows.js @@ -1825,12 +1825,7 @@ App.Data.FCTV.channels = { { get text() { const r = []; - if (V.usedRemote) { - r.push(`based off an interesting thumbnail that turns out to be`); - } else { - r.push(`which is currently in`); - } - r.push(`the middle of a "real life" documentary.`); + r.push(`which is currently in the middle of a "real life" documentary.`); r.push(`<p>The mountain roads started getting dangerous when the rains started getting bad. All that water washed away the earth and loosened up rocks that had been there for ages. Rock slides started getting more and more common, so the roads started getting less and less traffic. People with enough money took planes to get across the mountains, and those without money just stayed put. That is until things started getting worse over there. There was an exodus of desperate people leaving some time ago after their government withdrew from the area, and that many vehicles was enough to bring down the rocks and kill hundreds. All that was left back home was those stupid enough to think things would get better, and those smart enough to realize that crossing was death. Now the roads are in pretty bad shape, but occasionally some groups come through. Either stupid or desperate, and either case works for us.</p>`); r.push(`<p>Two vans trundle down the road in the early morning fog, seen only by a pair of vague red shapes on a screen. Probably a family trying their escape. The vehicles slow to a halt and a couple of human shapes step out. A good portion of the road in front of them is gone. Maybe if they were on motorbikes they would be able to use what's left, but, as it stands, they're probably going to have to all get out and walk the rest of the way.</p>`); r.push(`<p>The click of static from a radio breaks the silence. "Recon, report?"</p>`); @@ -1865,12 +1860,7 @@ App.Data.FCTV.channels = { { get text() { const r = []; - if (V.usedRemote) { - r.push(`another interesting thumbnail which turns out to be in`); - } else { - r.push(`skipping straight to`); - } - r.push(`the middle of yet another "real life" documentary.`); + r.push(`skipping straight to the middle of yet another "real life" documentary.`); r.push(`<p>The dull blueish glow of a simple terminal illuminates a haggard, pock-marked face as it gazes at account data just barely in the black. A simple reminder breaks the tense silence between the figure and the machine. "Deployment at 1800. Two hour reminder."</p>`); r.push(`<p>With a heavy sigh the figure shuts the terminal and heads out into the sun-lit concourse, grabbing a simple handbag as they go. They join the flowing chaos of people heading in the direction of the market sectors. After a time they break from the river of bodies toward a multi-level piece of solid, pristine white built into the massive, slowly curving wall of businesses that makes up the center of the arcology's markets. The simple black text marks the building as "Vinewood Hospital." A crystal clear door slides open silently at the figure's approach, the thin, metal frame moving being the only indication that anything had changed. The interior of the structure is, like the exterior, a chilly, sterile white. A few staff in simple, pastel scrubs move around the open reception area, all making efforts to stay clear of the figure's path toward the reception counter.</p>`); r.push(`<p>At their approach, the reception slave gives a smile that only looks slightly forced, "How can I help you today?"</p>`); diff --git a/src/uncategorized/bodyModification.js b/src/uncategorized/bodyModification.js index 5d2653964dabd18745ddcc64239ef584b630d0f3..3a00623f38bdaa97e9fee39fce970b57c90f8fc1 100644 --- a/src/uncategorized/bodyModification.js +++ b/src/uncategorized/bodyModification.js @@ -187,7 +187,7 @@ App.Medicine.Modification.Select.brand = function(slave, cheat = false) { p.append(`? `); if (!_left || !_right) { p.append(` ${V.brandTarget.local}`); - App.UI.DOM.appendNewElement("span", "p", `Branding will slightly reduce ${his} beauty but may slowly increase your reputation.`, "note"); + App.UI.DOM.appendNewElement("span", p, `Branding will slightly reduce ${his} beauty but may slowly increase your reputation.`, "note"); } } } else { @@ -233,7 +233,7 @@ App.Medicine.Modification.Select.brand = function(slave, cheat = false) { function symbolBlock(brandList) { const div = document.createElement('div'); div.classList.add("double-choices"); - div.style.textIndent = 0; + div.style.textIndent = "0px"; div.append(symbolOptions(brandList)); return div; } @@ -317,7 +317,7 @@ App.Medicine.Modification.Select.brand = function(slave, cheat = false) { function partLinks(bodyPartObj) { const div = document.createElement("div"); div.classList.add("double-choices"); - div.style.textIndent = 0; + div.style.textIndent = "0px"; const array = []; for (const bp in bodyPartObj) { array.push(