diff --git a/src/endWeek/saServeThePublic.js b/src/endWeek/saServeThePublic.js index 84bfd46b4d1a8eee0c59836d13152a75015222c8..cea7e5200928150a9e4e366b07f0871220245082 100644 --- a/src/endWeek/saServeThePublic.js +++ b/src/endWeek/saServeThePublic.js @@ -582,26 +582,14 @@ App.SlaveAssignment.serveThePublic = (function() { * */ function publicReactions(slave) { - let sstp; - if ((slave.rules.release.masturbation === 0 && !App.Utils.hasFamilySex(slave) && slave.rules.release.slaves === 0) && slave.rules.reward !== "orgasm") { r += ` ${He}'s a better slut because public service is ${his} main sexual outlet.`; } if (totalRelatives(slave) > 0) { let children = V.slaves.filter((s) => areRelated(slave, s) && (s.assignment === slave.assignment)); - if (children.length > 2) { - r += ` Since ${his} relatives,`; - for (sstp = 0; sstp < children.length; sstp++) { - if (sstp < children.length - 1) { - r += ` ${children[sstp].slaveName},`; - } else { - r += ` and ${children[sstp].slaveName},`; - } - } - r += ` are public sluts too, ${he} earns extra attention.`; - } else if (children.length > 1) { - r += ` Since ${his} relatives, ${children[0].slaveName} and ${children[1].slaveName}, are public sluts too, ${he} earns extra attention.`; + if (children.length > 1) { + r += ` Since ${his} relatives, ${arrayToSentence(children)}, are public sluts too, ${he} earns extra attention.`; } else if (children.length > 0) { r += ` Since ${his} relative, ${children[0].slaveName}, is a public slut too, ${he} earns extra attention.`; } @@ -614,17 +602,17 @@ App.SlaveAssignment.serveThePublic = (function() { } } if (slave.relationship > 0) { - sstp = V.slaveIndices[slave.relationshipTarget]; - if (sstp !== undefined && slave.assignment === V.slaves[sstp].assignment) { - r += ` ${His} ${relationshipTerm(slave)} ${V.slaves[sstp].slaveName} is also serving the public and they work well together.`; + const partner = getSlave(slave.relationshipTarget); + if (partner && slave.assignment === partner.assignment) { + r += ` ${His} ${relationshipTerm(slave)} ${partner.slaveName} is also serving the public and they work well together.`; } } else if (slave.relationship === -1) { r += ` ${He} relies on citizens' desire to fuck ${him} for emotional support, making ${him} an excellent, if occasionally disturbing, slut.`; } if (slave.rivalry !== 0) { - sstp = V.slaveIndices[slave.rivalryTarget]; - if (sstp !== undefined && slave.assignment === V.slaves[sstp].assignment) { - r += ` ${He}'s a little less effective due to ${his} mutual dislike with ${V.slaves[sstp].slaveName}.`; + const rival = getSlave(slave.rivalryTarget); + if (rival && slave.assignment === rival.assignment) { + r += ` ${He}'s a little less effective due to ${his} mutual dislike with ${rival.slaveName}.`; } } diff --git a/src/endWeek/saServeYourOtherSlaves.js b/src/endWeek/saServeYourOtherSlaves.js index 400bde9452b8321660b62e05db6ba4c9c9a95bda..3f2eae566f1052b3faf01178884b2c7681fb0fb1 100644 --- a/src/endWeek/saServeYourOtherSlaves.js +++ b/src/endWeek/saServeYourOtherSlaves.js @@ -20,7 +20,6 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() { let load; let cervixPump; - let dom; let domSlave; let domName; let domRace; @@ -88,10 +87,9 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() { jobType = "cumdump"; } else { // validate .subTarget - dom = V.slaveIndices[slave.subTarget]; - if (dom !== undefined) { + domSlave = getSlave(slave.subTarget); + if (domSlave) { jobType = "sub"; - domSlave = V.slaves[dom]; domName = domSlave.slaveName; domFetishKnown = domSlave.fetishKnown; domSlaveUsedFetish = 0; @@ -493,7 +491,7 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() { } subSlaveLikedFetish = 1; } - } else if (slave.devotion >= -20 && domSlave === "submissive" && domSlave.fetishStrength > 60) { + } else if (slave.devotion >= -20 && domSlave.fetish === "submissive" && domSlave.fetishStrength > 60) { domSlaveUsedFetish = 1; if (domFetishKnown) { r.push(`${domName} loves to submit, and tells`); diff --git a/src/endWeek/saWhore.js b/src/endWeek/saWhore.js index 1fb242d40dd7f636a015f3b097757549d2843057..1ddf0a5a5e3ddf6f8eddb6d2c41557abe4e7fb1c 100644 --- a/src/endWeek/saWhore.js +++ b/src/endWeek/saWhore.js @@ -653,26 +653,14 @@ App.SlaveAssignment.whore = (function() { * @param {App.Entity.SlaveState} slave */ function publicReactions(slave) { - let SWi; - if ((slave.rules.release.masturbation === 0 && !App.Utils.hasFamilySex(slave) && slave.rules.release.slaves === 0) && slave.rules.reward !== "orgasm") { r += ` ${He}'s a better whore because prostitution is ${his} main sexual outlet.`; } if (totalRelatives(slave) > 0) { let children = V.slaves.filter((s) => areRelated(slave, s) && (s.assignment === slave.assignment)); - if (children.length > 2) { - r += ` Since ${his} relatives,`; - for (SWi = 0; SWi < children.length; SWi++) { - if (SWi < children.length - 1) { - r += ` ${children[SWi].slaveName},`; - } else { - r += ` and ${children[SWi].slaveName},`; - } - } - r += ` are selling themselves too, ${he} earns extra ¤ by working with them.`; - } else if (children.length > 1) { - r += ` Since ${his} relatives, ${children[0].slaveName} and ${children[1].slaveName}, are selling themselves too, ${he} earns extra ¤ by working with them.`; + if (children.length > 1) { + r += ` Since ${his} relatives, ${arrayToSentence(children)}, are selling themselves too, ${he} earns extra ¤ by working with them.`; } else if (children.length > 0) { const relativePronouns = getPronouns(children[0]); r += ` Since ${his} relative, ${children[0].slaveName}, is selling ${relativePronouns.objectReflexive} too, ${he} earns extra ¤ by working with ${relativePronouns.object}.`; @@ -686,17 +674,17 @@ App.SlaveAssignment.whore = (function() { } } if (slave.relationship > 0) { - SWi = V.slaveIndices[slave.relationshipTarget]; - if (SWi !== undefined && slave.assignment === V.slaves[SWi].assignment) { - r += ` ${His} ${relationshipTerm(slave)} ${V.slaves[SWi].slaveName} is also whoring, so ${he} earns a bit more.`; + const partner = getSlave(slave.relationshipTarget); + if (partner && slave.assignment === partner.assignment) { + r += ` ${His} ${relationshipTerm(slave)} ${partner.slaveName} is also whoring, so ${he} earns a bit more.`; } } else if (slave.relationship === -1) { r += ` ${He} relies on citizens' desire to fuck ${him} for emotional support, making ${him} an excellent, if occasionally disturbing, whore.`; } if (slave.rivalry !== 0) { - SWi = V.slaveIndices[slave.rivalryTarget]; - if (SWi !== undefined && slave.assignment === V.slaves[SWi].assignment) { - r += ` ${He} earns a little less ¤ due to bickering with ${V.slaves[SWi].slaveName}.`; + const rival = getSlave(slave.rivalryTarget); + if (rival && slave.assignment === rival.assignment) { + r += ` ${He} earns a little less ¤ due to bickering with ${rival.slaveName}.`; } } diff --git a/src/endWeek/slaveAssignmentReport.js b/src/endWeek/slaveAssignmentReport.js index 66a3b6bba6a577debc658bf7253958df39121830..ce8b3338e49e772e01e9e3831c606266c68425e9 100644 --- a/src/endWeek/slaveAssignmentReport.js +++ b/src/endWeek/slaveAssignmentReport.js @@ -17,10 +17,9 @@ App.EndWeek.slaveAssignmentReport = function() { } /** silent pass for any reassignments before generating reports */ - for (let i = 0; i < V.slaves.length; ++i) { - if (V.slaves[i].choosesOwnAssignment === 1) { - V.i = i; - App.SlaveAssignment.choosesOwnJob(V.slaves[i]); + for (const slave of V.slaves) { + if (slave.choosesOwnAssignment === 1) { + App.SlaveAssignment.choosesOwnJob(slave); } } diff --git a/src/interaction/slaveInteract.js b/src/interaction/slaveInteract.js index a43f6547e698bf41698d0d67f32345e829d658f0..e31285558d9cf46a3a70d665176be0b36e6a2663 100644 --- a/src/interaction/slaveInteract.js +++ b/src/interaction/slaveInteract.js @@ -2775,39 +2775,31 @@ App.UI.SlaveInteract.custom = (function() { )); } if (slave.relationship >= 5) { - for (let _i = 0; _i < V.slaves.length; _i++) { - if (slave.relationshipTarget === V.slaves[_i].ID) { - if (V.slaves[_i].slaveSurname) { - if (slave.slaveSurname !== V.slaves[_i].slaveSurname) { - result.append(` | `); - const wifePronouns = getPronouns(V.slaves[_i]); - result.appendChild(App.UI.DOM.link( - `Give ${him} ${his} ${wifePronouns.wife}'s surname`, - () => { - slave.slaveSurname = V.slaves[_i].slaveSurname; - updateName(slave, {oldName:oldName, oldSurname:oldSurname}); - }, - false, - )); - break; - } - } - } + const spouse = getSlave(slave.relationshipTarget); + if (spouse.slaveSurname && slave.slaveSurname !== spouse.slaveSurname) { + result.append(` | `); + const wifePronouns = getPronouns(spouse); + result.appendChild(App.UI.DOM.link( + `Give ${him} ${his} ${wifePronouns.wife}'s surname`, + () => { + slave.slaveSurname = spouse.slaveSurname; + updateName(slave, {oldName:oldName, oldSurname:oldSurname}); + }, + false, + )); } } if (slave.relationship === -3) { - if (V.PC.slaveSurname) { - if (slave.slaveSurname !== V.PC.slaveSurname) { - result.append(` | `); - result.appendChild(App.UI.DOM.link( - `Give ${him} your surname`, - () => { - slave.slaveSurname = V.PC.slaveSurname; - updateName(slave, {oldName:oldName, oldSurname:oldSurname}); - }, - false, - )); - } + if (V.PC.slaveSurname && slave.slaveSurname !== V.PC.slaveSurname) { + result.append(` | `); + result.appendChild(App.UI.DOM.link( + `Give ${him} your surname`, + () => { + slave.slaveSurname = V.PC.slaveSurname; + updateName(slave, {oldName:oldName, oldSurname:oldSurname}); + }, + false, + )); } } if (V.arcologies[0].FSRomanRevivalist !== "unset") {