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") { diff --git a/src/js/birth/birth.js b/src/js/birth/birth.js index cbb44285758b27dbdd469a6e62134bbb40c9a908..717214e248c9a42344c003659d695e335f5043ff 100644 --- a/src/js/birth/birth.js +++ b/src/js/birth/birth.js @@ -1286,7 +1286,7 @@ globalThis.allBirths = function() { if (curBabies > 0) { r.push(`After sending ${his} reserved ${children} to`); if (cToIncubator > 0 && cToNursery > 0) { - r.push(`${V.incubatorName} and V.nurseryName,`); + r.push(`${V.incubatorName} and ${V.nurseryName},`); } else if (cToIncubator > 0) { r.push(`${V.incubatorName},`); } else { diff --git a/src/js/birth/birthDescriptions.js b/src/js/birth/birthDescriptions.js index a7fa2425b432247fa47ee59731f76e70216285d4..63ff3481642aec462ddcc8b7bfaa446c050caddc 100644 --- a/src/js/birth/birthDescriptions.js +++ b/src/js/birth/birthDescriptions.js @@ -233,9 +233,10 @@ globalThis.birthDescription = function(slave) { r.push(`another slave`); } r.push(`has to pull the animal off of ${him} and drag ${him} into the nearest birthing stall. ${He} also shows almost no reaction when ${his} ${children}`); - r.push(`begin`); if (slave.pregType <= 1) { - r.push(`s`); + r.push(`begins`); + } else { + r.push(`begin`); } r.push(`to come out, or when ${he} is subsequently hosed off before being led back to ${V.farmyardName}.`); } else { @@ -561,7 +562,7 @@ globalThis.birthDescription = function(slave) { case "live with your Head Girl": ({He2, he2, his2} = getPronouns(S.HeadGirl).appendSuffix("2")); if (slave.pregSource === V.HeadGirlID) { - r.push(`S.HeadGirl.slaveName makes sure that the mother of ${his2} ${children} is happy and comfortable for the upcoming birth, even if they won't be spending much time with their offspring. ${He2} carefully undresses ${slave.slaveName}, all the while whispering sweet nothings in ${his} ear. ${He} begins to push out ${his} ${babies},`); + r.push(`${S.HeadGirl.slaveName} makes sure that the mother of ${his2} ${children} is happy and comfortable for the upcoming birth, even if they won't be spending much time with their offspring. ${He2} carefully undresses ${slave.slaveName}, all the while whispering sweet nothings in ${his} ear. ${He} begins to push out ${his} ${babies},`); if (slave.geneticQuirks.uterineHypersensitivity === 2) { r.push(`convulsing with orgasms in the process,`); } @@ -1053,11 +1054,7 @@ globalThis.ampBirth = function(slave) { // "AmpBirth" if (slave.pregType === 1) { r.push(`a`); } - r.push(`name-card`); - if (slave.pregType > 1) { - r.push(`s`); - } - r.push(`affixed to their ${(slave.pregType > 1) ? `blankets` : `blanket`}.`); + r.push(`${(slave.pregType > 1) ? `name-cards` : `name-card`} affixed to their ${(slave.pregType > 1) ? `blankets` : `blanket`}.`); if (slave.fetish !== "mindbroken") { r.push(`${He} can't help but feel more devoted to ${his} master after seeing such a touching act. Before you leave, ${slave.slaveName} expresses how cute ${he} found your ${children} and that ${he}'d love to bear more for you.`); } @@ -4287,9 +4284,11 @@ globalThis.broodmotherBirth = function(slave) { if (random(1, 20) > V.suddenBirth) { r.push(`${He} is helped back to ${his} bed and stripped before slipping into it. Instinctively, ${he} begins to push out ${firstText} baby. ${His} child is promptly taken and ${he} is encouraged to keep resting.`); if (hasAnyArms(slave)) { - r.push(`${He} runs ${his} hand`); + r.push(`${He} runs ${his}`); if (hasBothArms(slave)) { - r.push(`s`); + r.push(`hands`); + } else { + r.push(`hand`); } r.push(`across the still huge dome of ${his} middle; to`); } else { @@ -4315,9 +4314,11 @@ globalThis.broodmotherBirth = function(slave) { if (random(1, 20) > V.suddenBirth) { r.push(`${He} returns to ${his} bed and strips before slipping into it. Instinctively, ${he} begins to push out ${firstText} baby. ${His} child is promptly taken and ${he} is encouraged to keep resting.`); if (hasAnyArms(slave)) { - r.push(`${He} runs ${his} hand`); + r.push(`${He} runs ${his}`); if (hasBothArms(slave)) { - r.push(`s`); + r.push(`hands`); + } else { + r.push(`hand`); } r.push(`across the still huge dome of ${his} middle; to`); } else { @@ -4962,7 +4963,7 @@ globalThis.broodmotherBirth = function(slave) { r.push(clothingBirth(slave)); r.push(`${He} struggles to reach ${firstText} child around ${his} still gravid figure before bringing it to ${his} breast and resuming ${his} wait`); if (S.Concubine) { - r.push(`S.Concubine.slaveName furiously orders ${his} child removed and ${his} still very pregnant ass thoroughly cleaned before your return.`); + r.push(`${S.Concubine.slaveName} furiously orders ${his} child removed and ${his} still very pregnant ass thoroughly cleaned before your return.`); } } } @@ -5954,9 +5955,11 @@ globalThis.broodmotherBirth = function(slave) { if (random(1, 20) > V.suddenBirth) { r.push(`${He} is helped back to ${his} bed and stripped before slipping into it. Instinctively, ${he} begins to push out ${firstText} baby. ${His} child is promptly taken and ${he} is encouraged to keep resting.`); if (hasAnyArms(slave)) { - r.push(`${He} runs ${his} hand`); + r.push(`${He} runs ${his}`); if (hasBothArms(slave)) { - r.push(`s`); + r.push(`hands`); + } else { + r.push(`hand`); } r.push(`across the still huge dome of ${his} middle; to`); } else { @@ -5982,9 +5985,11 @@ globalThis.broodmotherBirth = function(slave) { if (random(1, 20) > V.suddenBirth) { r.push(`${He} returns to ${his} bed and strips before slipping into it. Instinctively, ${he} begins to push out ${firstText} baby. ${His} child is promptly taken and ${he} is encouraged to keep resting.`); if (hasAnyArms(slave)) { - r.push(`${He} runs ${his} hand`); + r.push(`${He} runs ${his}`); if (hasBothArms(slave)) { - r.push(`s`); + r.push(`hands`); + } else { + r.push(`hand`); } r.push(`across the still huge dome of ${his} middle; to`); } else { @@ -6014,9 +6019,11 @@ globalThis.broodmotherBirth = function(slave) { if (random(1, 20) > V.suddenBirth) { r.push(`${He} is helped back to ${his} bed and stripped before slipping into it. Instinctively, ${he} begins to push out ${firstText} baby. ${His} child is promptly taken and ${he} is encouraged to keep resting.`); if (hasAnyArms(slave)) { - r.push(`${He} runs ${his} hand`); + r.push(`${He} runs ${his}`); if (hasBothArms(slave)) { - r.push(`s`); + r.push(`hands`); + } else { + r.push(`hand`); } r.push(`across the still huge dome of ${his} middle; to`); } else { @@ -6064,9 +6071,11 @@ globalThis.broodmotherBirth = function(slave) { if (random(1, 20) > V.suddenBirth) { r.push(`${He} returns to ${his} bed and strips before slipping into it. Instinctively, ${he} begins to push out ${firstText} baby. ${His} child is promptly taken and ${he} is encouraged to keep resting.`); if (hasAnyArms(slave)) { - r.push(`${He} runs ${his} hand`); + r.push(`${He} runs ${his}`); if (hasBothArms(slave)) { - r.push(`s`); + r.push(`hands`); + } else { + r.push(`hand`); } r.push(`across the still huge dome of ${his} middle; to`); } else { @@ -6509,8 +6518,7 @@ globalThis.hyperBroodmotherBirth = function(slave) { r.push(clothingBirth(slave)); r.push(`Resting in your bed, ${he} draws ${his} child to ${his} breast and resumes waiting for you.`); if (S.Concubine) { - r.push(`${S.Concubine.slaveName} furiously orders ${his} ${children}`); - r.push(`removed, and ${him} forcefully ejected from the bed so it can be cleaned before your return.`); + r.push(`${S.Concubine.slaveName} furiously orders ${his} ${children} removed, and ${him} forcefully ejected from the bed so it can be cleaned before your return.`); } } else if (V.masterSuiteUpgradeLuxury === 2) { r.push(`While being the bottom of the master suite's fuckpit, ${slave.slaveName}'s body begins to birth another of ${his} brood. While ${he} doesn't stop having sex, the fucktoys using ${him} do and attempt to drag ${him} from the pit to give birth. Instinctively ${he} begins to push out ${his} baby, indifferent to who may be watching ${his} naked crotch. The fucktoys give up their efforts to haul ${his} bloated form out of the pit and allow ${him} to settle at the bottom. Without a second thought about ${his} child, ${he} attempts to coax the other slaves back into an orgy.`); @@ -6519,8 +6527,7 @@ globalThis.hyperBroodmotherBirth = function(slave) { r.push(clothingBirth(slave)); r.push(`Resting on ${his} belly, ${he} draws ${his} child to ${his} breast and resumes waiting for you.`); if (S.Concubine) { - r.push(`S.Concubine.slaveName furiously orders ${his} ${children}`); - r.push(`removed, and ${him} thoroughly cleaned before your return.`); + r.push(`${S.Concubine.slaveName} furiously orders ${his} ${children} removed, and ${him} thoroughly cleaned before your return.`); } } } else { @@ -6546,8 +6553,7 @@ globalThis.hyperBroodmotherBirth = function(slave) { r.push(clothingBirth(slave)); r.push(`Resting in your bed, ${he} draws ${his} child to ${his} breast and resumes waiting for you.`); if (S.Concubine) { - r.push(`${S.Concubine.slaveName} furiously orders ${his} ${children}`); - r.push(`removed, and ${him} forcefully ejected from the bed so it can be cleaned before your return.`); + r.push(`${S.Concubine.slaveName} furiously orders ${his} ${children} removed, and ${him} forcefully ejected from the bed so it can be cleaned before your return.`); } } else if (V.masterSuiteUpgradeLuxury === 2) { r.push(`While being the bottom of the master suite's fuckpit, ${slave.slaveName}'s body begins to birth another of ${his} brood. While ${he} doesn't stop having sex, the fucktoys using ${him} do and attempt to drag ${him} from the pit to give birth. Instinctively ${he} begins to push out ${his} baby, indifferent to who may be watching ${his} naked crotch. The fucktoys give up their efforts to haul ${his} bloated form out of the pit and allow ${him} to settle a the bottom. Without a second thought about ${his} child, ${he} attempts to coax the other slaves back into an orgy.`); @@ -6556,8 +6562,7 @@ globalThis.hyperBroodmotherBirth = function(slave) { r.push(clothingBirth(slave)); r.push(`Resting on ${his} belly, ${he} draws ${his} child to ${his} breast and resumes waiting for you.`); if (S.Concubine) { - r.push(`${S.Concubine.slaveName} furiously orders ${his} ${children}`); - r.push(`removed, and ${him} thoroughly cleaned before your return.`); + r.push(`${S.Concubine.slaveName} furiously orders ${his} ${children} removed, and ${him} thoroughly cleaned before your return.`); } } } else { diff --git a/src/js/sexActsJS.js b/src/js/sexActsJS.js index 0eb1a14a2c55d57e95d09495c429165e85a2b28e..85c410ffd4021940224388e8e780f7cf5a8c1dfa 100644 --- a/src/js/sexActsJS.js +++ b/src/js/sexActsJS.js @@ -26,8 +26,8 @@ globalThis.VCheck = (function() { } /** call as VCheck.Anal() - * @param {number} [times=1] is how many times to increment the anal counts. * @param {App.Entity.SlaveState} slave + * @param {number} [times=1] is how many times to increment the anal counts. * @returns {string} */ function AnalVCheck(slave, times = 1) { @@ -378,8 +378,6 @@ globalThis.SimpleSexAct = (function() { function SimpleSlaveSlaveFucking(subSlave, domSlave, fuckCount = 1) { let fuckTarget = 0; let r = ""; - let slave1ID; - let slave2ID; let sex = ""; for (let j = 0; j < fuckCount; j++) { @@ -387,32 +385,8 @@ globalThis.SimpleSexAct = (function() { fuckTarget = jsRandom(1, 100); if (subSlave.nipples === "fuckable" && canPenetrate(domSlave) && fuckTarget > 80) { sex = "mammary"; - if (passage() === "SA serve your other slaves") { - if (subSlave.ID === V.slaves[V.i].ID) { - slave1ID = V.slaves[V.i].ID; - slave2ID = domSlave.ID; - } else { - slave1ID = subSlave.ID; - slave2ID = V.slaves[V.i].ID; - } - } else { - slave1ID = subSlave.ID; - slave2ID = domSlave.ID; - } } else if (canDoVaginal(subSlave) && subSlave.vagina > 0 && canPenetrate(domSlave) && fuckTarget > 33) { sex = "vaginal"; - if (passage() === "SA serve your other slaves") { - if (subSlave.ID === V.slaves[V.i].ID) { - slave1ID = V.slaves[V.i].ID; - slave2ID = domSlave.ID; - } else { - slave1ID = subSlave.ID; - slave2ID = V.slaves[V.i].ID; - } - } else { - slave1ID = subSlave.ID; - slave2ID = domSlave.ID; - } if (canImpreg(subSlave, domSlave)) { r += knockMeUp(subSlave, 3, 0, domSlave.ID, true); } @@ -422,24 +396,10 @@ globalThis.SimpleSexAct = (function() { if (canImpreg(subSlave, domSlave) && subSlave.mpreg === 1) { r += knockMeUp(subSlave, 3, 1, domSlave.ID, true); } - if (passage() === "SA serve your other slaves") { - if (subSlave.ID === V.slaves[V.i].ID) { - slave1ID = V.slaves[V.i].ID; - slave2ID = domSlave.ID; - } else { - slave1ID = subSlave.ID; - slave2ID = V.slaves[V.i].ID; - } - } else { - slave1ID = subSlave.ID; - slave2ID = domSlave.ID; - } } else { - actX(subSlave, "oral"); - } - if (typeof slave1ID === Number && typeof slave2ID === Number) { - seX(V.slaves[slave1ID], sex, V.slaves[slave2ID], "penetrative"); + sex = "oral"; } + seX(subSlave, sex, domSlave, "penetrative"); } return r; }