diff --git a/js/003-data/slaveWearData.js b/js/003-data/slaveWearData.js index d0fc4d7969b82d5a41070302f4a0e1ae09f358a2..8777cf308c604a65c8988b57a1ce849836c03372 100644 --- a/js/003-data/slaveWearData.js +++ b/js/003-data/slaveWearData.js @@ -7,7 +7,7 @@ */ /** - * @typedef {Array<slaveWear>} slaveWearCategory + * @typedef {Array<slaveWear>|Array<slaveWearChastity>} slaveWearCategory */ /** @type {Object.<string, slaveWearCategory>} */ diff --git a/src/endWeek/reports/brothelReport.js b/src/endWeek/reports/brothelReport.js index a2bc80d7005478afb69c74f6a1cb97fd79bea695..ff94e170ad0b3310f548c0e9fe8172b5e019b22f 100644 --- a/src/endWeek/reports/brothelReport.js +++ b/src/endWeek/reports/brothelReport.js @@ -212,7 +212,7 @@ App.EndWeek.brothelReport = function() { App.Events.addNode(el, r); if ((SL + V.brothelSlavesGettingHelp < 10) && V.MadamNoSex !== 1 && !slaveResting(S.Madam)) { - let oldCash = V.cash; + const oldCash = V.cash; if (V.showEWD !== 0) { App.Events.addParagraph( el, @@ -233,7 +233,6 @@ App.EndWeek.brothelReport = function() { ] ); profits += V.cash - oldCash; - oldCash = V.cash; } } } diff --git a/src/interaction/siWardrobe.js b/src/interaction/siWardrobe.js index 320c190b11dbdf2a882ce71f0699a2f0be62fbf7..68b650df96294f3f58080236e807a20e0fbca294 100644 --- a/src/interaction/siWardrobe.js +++ b/src/interaction/siWardrobe.js @@ -113,7 +113,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { let label = document.createElement('div'); label.append(`Collar: `); - + let choice = App.UI.DOM.disabledLink(`${slave.collar}`, [clothTooltip(`${slave.collar}`)]); choice.style.fontWeight = "bold"; label.appendChild(choice); @@ -231,7 +231,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { let label = document.createElement('div'); label.append(`Gag: `); - + let choice = App.UI.DOM.disabledLink(`${slave.mouthAccessory}`, [clothTooltip(`${slave.mouthAccessory}`)]); choice.style.fontWeight = "bold"; label.appendChild(choice); @@ -275,7 +275,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { let label = document.createElement('div'); label.append(`Arm accessory: `); - + let choice = App.UI.DOM.disabledLink(`${slave.armAccessory}`, [clothTooltip(`${slave.armAccessory}`)]); choice.style.fontWeight = "bold"; label.appendChild(choice); @@ -307,7 +307,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { let label = document.createElement('div'); label.append(`Shoes: `); - + let choice = App.UI.DOM.disabledLink(`${slave.shoes}`, [clothTooltip(`${slave.shoes}`)]); choice.style.fontWeight = "bold"; label.appendChild(choice); @@ -360,7 +360,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { let label = document.createElement('div'); label.append(`Leg accessory: `); - + let choice = App.UI.DOM.disabledLink(`${slave.legAccessory}`, [clothTooltip(`${slave.legAccessory}`)]); choice.style.fontWeight = "bold"; label.appendChild(choice); @@ -413,7 +413,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { let label = document.createElement('div'); label.append(`Belly accessory: `); - + let choice = App.UI.DOM.disabledLink(`${slave.bellyAccessory}`, [clothTooltip(`${slave.bellyAccessory}`)]); choice.style.fontWeight = "bold"; label.appendChild(choice); @@ -446,7 +446,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { let label = document.createElement('div'); label.append(`Anal accessory: `); - + let choice = App.UI.DOM.disabledLink(`${slave.buttplug}`, [clothTooltip(`${slave.buttplug}`)]); choice.style.fontWeight = "bold"; label.appendChild(choice); @@ -493,7 +493,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { let label = document.createElement('div'); label.append(`Anal accessory attachment: `); - + let choice = App.UI.DOM.disabledLink(`${slave.buttplugAttachment}`, [clothTooltip(`${slave.buttplugAttachment}`)]); choice.style.fontWeight = "bold"; label.appendChild(choice); @@ -539,7 +539,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { let label = document.createElement('div'); label.append(`Vaginal accessory: `); - + let choice = App.UI.DOM.disabledLink(`${slave.vaginalAccessory}`, [clothTooltip(`${slave.vaginalAccessory}`)]); choice.style.fontWeight = "bold"; label.appendChild(choice); @@ -586,7 +586,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { let label = document.createElement('div'); label.append(`Vaginal accessory attachment: `); - + let choice = App.UI.DOM.disabledLink(`${slave.vaginalAttachment}`, [clothTooltip(`${slave.vaginalAttachment}`)]); choice.style.fontWeight = "bold"; label.appendChild(choice); @@ -631,7 +631,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { let label = document.createElement('div'); label.append(`Dick accessory: `); - + let choice = App.UI.DOM.disabledLink(`${slave.dickAccessory}`, [clothTooltip(`${slave.dickAccessory}`)]); choice.style.fontWeight = "bold"; label.appendChild(choice); @@ -698,7 +698,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { } else { chasCho = `THERE HAS BEEN AN ERROR `; } - + let choice = App.UI.DOM.disabledLink(chasCho, [clothTooltip(chasCho)]); choice.style.fontWeight = "bold"; label.appendChild(choice); @@ -786,7 +786,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { App.Art.refreshSlaveArt(slave, 3, "art-frame"); jQuery("#content-appearance").empty().append(App.UI.SlaveInteract.wardrobe(slave)); } - + /** * Figure out a tooltip text to use based on clothing name. * Described effects are mainly from saClothes.js some are from saLongTermMentalEffects.js or saLongTermPhysicalEffects.js @@ -797,7 +797,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { */ function clothTooltip(cloth) { let Cloth = capFirstChar(cloth); - + switch (cloth) { /* nice clothes without specific effects(besides FS or being slutty/humiliating/modest) are handled at the end */ case "choosing her own clothes": @@ -815,15 +815,15 @@ App.UI.SlaveInteract.wardrobe = function(slave) { return Cloth + ", it's humiliating, increase devotion and fear for slaves who are disobedient and not terrified. Masochists who are at least ambivalent gain devotion, may also cause masochism."; case "chains": return Cloth + " increase devotion and fear for slaves who are disobedient and not terrified. Masochists who are at least ambivalent gain devotion, may also cause masochism."; - + case "an apron": return Cloth + ", nice clothing that increases just devotion for submissives, humiliation fetishists and visibly pregnant pregnancy fetishists regardless of devotion level."; case "a monokini": return Cloth + ", nice clothing that boob fetishists enjoy."; - + case "none": return "No effect one way or another."; - + case "heavy gold": case "ancient Egyptian": case "bowtie": @@ -834,14 +834,13 @@ App.UI.SlaveInteract.wardrobe = function(slave) { case "silk ribbon": case "stylish leather": return Cloth + " on obedient slaves reduces fear, on non-obedient ones reduces fear a lot and devotion somewhat."; - return Cloth + " "; case "preg biometrics": return Cloth + " increases devotion for those who have pregnancy fetish while fertile or a humiliation fetish. For others obedient ones gain devotion, ambivalent ones gain fear and devotion and resistant ones lose devotion and gain fear."; case "bell collar": return Cloth + " on non-obedient slaves reduces fear a lot and devotion somewhat."; case "leather with cowbell": return Cloth + " on obedient slaves with boob fetish increases devotion, on disobedient slaves reduces fear a lot and devotion somewhat."; - + case "tight steel": case "uncomfortable leather": case "neck corset": @@ -849,12 +848,12 @@ App.UI.SlaveInteract.wardrobe = function(slave) { return Cloth + " increases fear for non-obedient slaves."; case "shock punishment": return Cloth + " for non-obedient slaves increases fear a great deal and reduces devotion, for resistant non-odd slaves it affects both much more a single time and gives the odd flaw."; - + case "cat ears": return Cloth + " increase fear and devotion for disobedient slaves, submissives and nymphos also enjoy wearing one."; case "porcelain mask": return Cloth + " obscures the face, increases fear and devotion for disobedient slaves, submissives and nymphos also enjoy wearing one."; - + case "ball gag": case "bit gag": case "ring gag": @@ -862,11 +861,11 @@ App.UI.SlaveInteract.wardrobe = function(slave) { case "dildo gag": case "massive dildo gag": return Cloth + " increases oral skill up to a point and causes fear for disobedient slaves."; - + case "hand gloves": case "elbow gloves": return Cloth + " have no effect one way or another."; - + case "flats": return Cloth + " have no effect one way or another."; case "heels": @@ -879,12 +878,12 @@ App.UI.SlaveInteract.wardrobe = function(slave) { case "extreme heels": case "extreme platform heels": return Cloth + " increase height, slaves with natural legs who are resistant resent and fear wearing them while non-resistant ones become more fearful(unless masochistic) and obedient."; - + case "short stockings": return Cloth + " have no effect one way or another."; case "long stockings": return Cloth + " have no effect one way or another."; - + case "a tight corset": return Cloth + " slowly narrows the waist into wispy one."; case "an extreme corset": @@ -896,7 +895,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { case "a large empathy belly": case "a huge empathy belly": return Cloth + " strenghtens or removes(a weak) pregnancy fetish and affects devotion in various ways depending on devotion, fertility and having a pregnancy fetish or breeder flaw."; - + case "bullet vibrator": return Cloth + " increases devotion but weakens fetish and libido."; case "smart bullet vibrator": @@ -911,12 +910,12 @@ App.UI.SlaveInteract.wardrobe = function(slave) { case "huge dildo": case "long, huge dildo": return Cloth + " stretches vagina into a cavernous one, on smaller vaginas size queens get much more devoted, masochists and submissives much more devoted and fearful and anyone else becomes much less devoted and trusting. Might cause miscarriage."; - + case "vibrator": return Cloth + " "; case "smart vibrator": return Cloth + " "; - + case "plug": return Cloth + " stretches butthole from virgin to tight, might remove hatred of anal."; case "long plug": @@ -927,14 +926,14 @@ App.UI.SlaveInteract.wardrobe = function(slave) { case "huge plug": case "long, huge plug": return Cloth + " stretches vagina into a cavernous one, on smaller vaginas size queens get much more devoted, masochists and submissives much more devoted and fearful and anyone else becomes much less devoted and trusting. Might cause miscarriage."; - + case "tail": case "fox tail": case "cat tail": case "cow tail": return Cloth + " makes it more scary to wear a plug but might give humiliation fetish,"; - - + + case "anal chastity": return Cloth + " prevents losing anal virginity."; case "chastity belt": @@ -956,8 +955,8 @@ App.UI.SlaveInteract.wardrobe = function(slave) { return Cloth + " "; case "revoke choosing own chastity": return Cloth + " "; - - default: + + default: { /* assuming nice clothes, could actually add some sort of check to make sure. */ /* which clothes have these is decided in miscData.js */ let clothTooltip = Cloth + ""; @@ -975,6 +974,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { } clothTooltip += "."; return clothTooltip; - }; + } + } } }; diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js index 8922b784515fbfaa35304617c7824a3ecb85365c..80c2ef83d6e2e26b62397319f9e1cc831472f429 100644 --- a/src/js/slaveSummaryWidgets.js +++ b/src/js/slaveSummaryWidgets.js @@ -934,7 +934,7 @@ App.UI.SlaveSummary = function() { if (slave.custom.label) { helpers.makeSpan(res, `${capFirstChar(slave.custom.label)}.`, ["custom-label"]); } - if ((slave.relationship !== 0) || (slave.relationship !== 0) || (abbrSettings.clothes === 2) || (abbrSettings.rulesets === 2)) { + if ((slave.relationship !== 0) || (totalRelatives(slave) > 0) || (abbrSettings.clothes === 2) || (abbrSettings.rulesets === 2)) { para = helpers.makeParagraph(res); } delegates.relations(slave, para); diff --git a/src/markets/specificMarkets/slaveShelter.js b/src/markets/specificMarkets/slaveShelter.js index fbc363122d8e45dc313426f502a9c23588c427a3..734f28ab826fd08a6a2d85d36bc32144782fa4de 100644 --- a/src/markets/specificMarkets/slaveShelter.js +++ b/src/markets/specificMarkets/slaveShelter.js @@ -283,7 +283,7 @@ App.Markets["Slave Shelter"] = function() { minAge = 30; maxAge = 42; } - V.shelterSlave = GenerateNewSlave("XX", {minAge: minAge, maxAge: maxAge, disableDisability: 1}); + V.shelterSlave = GenerateNewSlave("XX", {minAge: minAge, maxAge: maxAge, disableDisability: 1, ageOverridesPedoMode: pedo}); V.shelterSlave.origin = "$His previous owner discarded $him after many pregnancies."; V.shelterSlave.career = "a breeder"; V.shelterSlave.devotion = jsRandom(-75, -60); diff --git a/src/npc/generate/newSlaveIntro.js b/src/npc/generate/newSlaveIntro.js index c59d7323b9b280ca86349135a5471523d836c44f..1a1f214ec93465566cc1cb7d9866749c98a3b261 100644 --- a/src/npc/generate/newSlaveIntro.js +++ b/src/npc/generate/newSlaveIntro.js @@ -1919,11 +1919,11 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = } else { r.push(`${he} sits back up, you tell ${him} calmly and bluntly what ${his} new tattoo says:`); if (slave.stampTat === "advertisements") { - "Fuck My Ass."; + r.push(`"Fuck My Ass."`); } else if (slave.stampTat === "rude words") { - "Rear Entrance."; + r.push(`"Rear Entrance."`); } else if (slave.stampTat === "degradation") { - "Anal Whore."; + r.push(`"Anal Whore."`); } } } else { @@ -2103,7 +2103,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = result(slave) { const r = []; r.push(`${He} is much too thin and seems to shirk any offered food, but there is an easy solution to that. If ${he} refuses to eat, ${he} can be made to. Pulling the reluctant slave to the feeders, binding ${him} tightly to a chair, and attaching a hose to the slave food nozzle, you give ${him} a choice; suck the hose willingly or have it forced down ${his} throat. ${He} glares defiantly and keeps ${his} mouth firmly shut. You clamp down on ${his} nose, inevitably forcing ${him} to open ${his} mouth to breath. In that moment, you shove the hose in and down ${his} throat, carefully directing it down into ${his} stomach. ${He} gags as you turn on the flow, ${his} eyes filling with tears as ${he} feels the warm food travel down the tube and into ${his} stomach. ${He} sobs as ${his} belly steadily swells with unwelcome sustenance, ${his} eyes pleading with you, desperate to let you know ${he}'ll be good. You ignore ${him}, letting ${him} fill until ${his} belly is noticeably distended compared to ${his} thin frame. Once you feel ${he} has had enough, you pull the hose from ${his} gut, spraying ${his} face with food in the process, and tell ${him} it will go right back in if ${he} doesn't keep it all down. ${He} <span class="gold">nods fearfully,</span> anything to not go through that again. ${He} hobbles away once freed,`); - r.push(`one hand covering ${his} retching mouth and the other clasping ${his} <span class="mediumorchid">hated, food bloated middle.</span>`); //TODO: revise for hands + r.push(`one hand covering ${his} retching mouth and the other clasping ${his} <span class="mediumorchid">hated, food bloated middle.</span>`); // TODO: revise for hands slave.devotion -= 10; slave.trust -= 10; return r.join(" "); diff --git a/src/npc/infants/InfantState.js b/src/npc/infants/InfantState.js index bad32d731988231611f9575cd12549d622658b95..86f2b4d8e24a22954cfc982e095dd883562c30ea 100644 --- a/src/npc/infants/InfantState.js +++ b/src/npc/infants/InfantState.js @@ -39,7 +39,7 @@ App.Facilities.Nursery.InfantState = class InfantState { this.markings = "none"; /** * The infant's eyes - * @type App.Entity.EyeState + * @type {App.Entity.EyeState} */ this.eye = new App.Entity.EyeState(); /** hair color */ diff --git a/src/npc/surgery/surgery.js b/src/npc/surgery/surgery.js index 611388f00dd03abff441f1eaf9dee8cc6f010b29..dad460bba00624d6dd3ec77696c74aac459d7c3e 100644 --- a/src/npc/surgery/surgery.js +++ b/src/npc/surgery/surgery.js @@ -727,7 +727,7 @@ globalThis.setEyeColor = function(slave, color, side = "both") { * @param {string} sclera * @param {string} side */ -globalThis.setEyeColorFull = function(slave, iris = "brown", pupil = "circular", sclera = "white", side) { +globalThis.setEyeColorFull = function(slave, iris = "brown", pupil = "circular", sclera = "white", side = "both") { if (side === "both") { setEyeColorFull(slave, iris, pupil, sclera, "left"); setEyeColorFull(slave, iris, pupil, sclera, "right");