diff --git a/src/facilities/armory/BGSelect.js b/src/facilities/armory/BGSelect.js index 1a8115b75bea69454251bc416b1a42d3324dabca..6cf9ca64096a92726a6286549959b7c5211eb78d 100644 --- a/src/facilities/armory/BGSelect.js +++ b/src/facilities/armory/BGSelect.js @@ -2,6 +2,8 @@ App.Facilities.BGSelect = function() { let div = document.createElement("div"); const f = document.createDocumentFragment(); + App.UI.DOM.appendNewElement("h1", f, "Bodyguard Management"); + if (S.Bodyguard) { f.append(`${SlaveFullName(S.Bodyguard)} is working as your Bodyguard, remaining close to you at all times and guards your person. `); f.append(App.UI.DOM.link("Remove Bodyguard", () => { @@ -9,13 +11,13 @@ App.Facilities.BGSelect = function() { }, [], "Main" )); + + div.append(App.UI.DOM.makeCheckbox("bodyguardTrains"), " Can train potential successors."); + f.append(div); } else { f.append(`No Bodyguard assigned, appoint one from your devoted slaves.`); } - div.append(App.UI.DOM.makeCheckbox("bodyguardTrains"), " Can train potential successors."); - f.append(div); - - f.append(App.UI.SlaveList.facilityManagerSelection(App.Entity.facilities.armory, "Main")); + f.append(App.UI.SlaveList.facilityManagerSelection(App.Entity.facilities.armory, "BG Select")); return f; }; diff --git a/src/facilities/penthouse/HGSelect.js b/src/facilities/penthouse/HGSelect.js index 27b993c23689b74529f269f7ef14bae69ad192e2..505a6105cc5781b4a394200e489f3287840b0df3 100644 --- a/src/facilities/penthouse/HGSelect.js +++ b/src/facilities/penthouse/HGSelect.js @@ -1,25 +1,23 @@ App.Facilities.HGSelect = function() { - let HGName = "Your Head Girl"; let div = document.createElement("div"); const f = document.createDocumentFragment(); let r = []; let links = []; + App.UI.DOM.appendNewElement("h1", f, "Head Girl Management"); + if (S.HeadGirl) { + const HGName = SlaveFullName(S.HeadGirl); const { His, He, he, his, him, himself } = getPronouns(S.HeadGirl); - HGName = SlaveFullName(S.HeadGirl); - } - - App.UI.DOM.appendNewElement("h1", f, "Head Girl Management"); - - if (S.HeadGirl) { - f.append(`${SlaveFullName(S.HeadGirl)} is working as your HeadGirl. `); + + f.append(`${SlaveFullName(S.HeadGirl)} is working as your HeadGirl`); if (V.arcologies[0].FSEgyptianRevivalistLaw === 1) { - f.append(`${He} is also your Consort; serving and providing comfort, in addition to performing normal Head Girl duties. `); + f.append(`/Consort; serving and providing comfort, in addition to performing normal Head Girl duties`); } + f.append(`. `); if (V.HGSuite) { f.append(`Currently living in ${capFirstChar(V.HGSuiteName)} `); } @@ -28,191 +26,191 @@ App.Facilities.HGSelect = function() { }, [], "Main" )); - } else { - f.append(`No HeadGirl assigned, appoint one from your devoted slaves.`); - } + + App.UI.DOM.appendNewElement("div", f, `Slave training ${HGName} will prioritize enabled items in the following order`, "bold"); - App.UI.DOM.appendNewElement("div", f, `Slave training ${HGName} will prioritize enabled items in the following order`, "bold"); - - div.append(App.UI.DOM.makeCheckbox("headGirlTrainsHealth"), " Health"); - App.UI.DOM.appendNewElement("div", f, div, "indent"); - - div = document.createElement("div"); - div.append(App.UI.DOM.makeCheckbox("headGirlTrainsParaphilias"), " Paraphilias"); - App.UI.DOM.appendNewElement("div", f, div, "indent"); - - if (V.headGirlTrainsFlaws) { - r.push(`${HGName} will train flaws.`,); - } else if (V.headGirlSoftensFlaws) { - r.push(`${HGName} will softern flaws into quirks.`); - } else if (V.headGirlOverridesQuirks) { - r.push(`${HGName} will override quirks.`); - } - - links.push(App.UI.DOM.link(" Override quirks", () => { - V.headGirlTrainsFlaws = 0; - V.headGirlSoftensFlaws = 0; - V.headGirlOverridesQuirks = 1; - }, - [], passage() - )); - links.push(App.UI.DOM.link(" Soften flaws", () => { - V.headGirlTrainsFlaws = 0; - V.headGirlSoftensFlaws = 1; - V.headGirlOverridesQuirks = 0; - }, - [], passage() - )); - links.push(App.UI.DOM.link(" Train flaws", () => { - V.headGirlTrainsFlaws = 1; - V.headGirlSoftensFlaws = 0; - V.headGirlOverridesQuirks = 0; - }, - [], passage() - )); - - r.push(App.UI.DOM.generateLinksStrip(links)); - App.Events.addNode(f, r, "div", "indent"); - - div = document.createElement("div"); - div.append(App.UI.DOM.makeCheckbox("headGirlTrainsObedience"), " Obedience"); - App.UI.DOM.appendNewElement("div", f, div, "indent"); - - div = document.createElement("div"); - div.append(App.UI.DOM.makeCheckbox("headGirlTrainsSkills"), " Skills"); - App.UI.DOM.appendNewElement("div", f, div, "indent"); + div.append(App.UI.DOM.makeCheckbox("headGirlTrainsHealth"), " Health"); + App.UI.DOM.appendNewElement("div", f, div, "indent"); + + div = document.createElement("div"); + div.append(App.UI.DOM.makeCheckbox("headGirlTrainsParaphilias"), " Paraphilias"); + App.UI.DOM.appendNewElement("div", f, div, "indent"); + + if (V.headGirlTrainsFlaws) { + r.push(`${HGName} will train flaws.`,); + } else if (V.headGirlSoftensFlaws) { + r.push(`${HGName} will softern flaws into quirks.`); + } else if (V.headGirlOverridesQuirks) { + r.push(`${HGName} will override quirks.`); + } - App.UI.DOM.appendNewElement("div", f, "Training methods: ", "underline"); - - r = []; - if (V.HGSeverity === 1) { - r.push(`${HGName} will be <span class="bold">aggressive</span> when punishing, with rape strongly encouraged.`); - r.push(App.UI.DOM.link(" Moderate", () => { - V.HGSeverity = 0; + links.push(App.UI.DOM.link(" Override quirks", () => { + V.headGirlTrainsFlaws = 0; + V.headGirlSoftensFlaws = 0; + V.headGirlOverridesQuirks = 1; }, [], passage() )); - } else if (V.HGSeverity === 0) { - links = []; - r.push(`${HGName} will be <span class="bold">moderate</span> when punishing, carefully selecting appropriate consequences.`); - links.push(App.UI.DOM.link(" Be aggressive", () => { - V.HGSeverity = 1; + links.push(App.UI.DOM.link(" Soften flaws", () => { + V.headGirlTrainsFlaws = 0; + V.headGirlSoftensFlaws = 1; + V.headGirlOverridesQuirks = 0; }, [], passage() )); - links.push(App.UI.DOM.link(` Apply restrictions`, () => { - V.HGSeverity = -1; + links.push(App.UI.DOM.link(" Train flaws", () => { + V.headGirlTrainsFlaws = 1; + V.headGirlSoftensFlaws = 0; + V.headGirlOverridesQuirks = 0; }, [], passage() )); + r.push(App.UI.DOM.generateLinksStrip(links)); - } else if (V.HGSeverity === -1) { - r.push(`${HGName} will be <span class="bold">respectful</span> when punishing, treating slaves decently.`); - r.push(App.UI.DOM.link(" Be stricter", () => { - V.HGSeverity = 0; - }, - [], passage() - )); - } - App.Events.addNode(f, r, "div", "indent"); + App.Events.addNode(f, r, "div", "indent"); - r = []; - if (V.HGPiercings === 1) { - r.push(`${HGName} is <span class="bold">allowed</span> to use piercings as a tool to improve slaves' attitudes.`); - r.push(App.UI.DOM.link(" Disallow", () => { - V.HGPiercings = 0; - }, - [], passage() - )); - } else { - r.push(`${HGName} is <span class="bold">not allowed</span> to use piercings as a tool to improve slaves' attitudes.`); - r.push(App.UI.DOM.link(" Allow", () => { - V.HGPiercings = 1; - }, - [], passage() - )); - } - App.Events.addNode(f, r, "div", "indent"); + div = document.createElement("div"); + div.append(App.UI.DOM.makeCheckbox("headGirlTrainsObedience"), " Obedience"); + App.UI.DOM.appendNewElement("div", f, div, "indent"); - r = []; - App.UI.DOM.appendNewElement("div", f, "Behavior towards you: ", "underline"); - if (V.HGFormality === 1) { - r.push(`${HGName} will be <span class="bold">formal:</span> you will always be called ${getWrittenTitle(S.HeadGirl)}, just like any other slave.`); - r.push(App.UI.DOM.link(" Allow private informality", () => { - V.HGFormality = 0; - }, - [], passage() - )); - } else { - r.push(`${HGName} is allowed to be <span class="bold">informal:</span> in private, you can be called ${properTitle()}.`); - r.push(App.UI.DOM.link(" Maintain complete formality", () => { - V.HGFormality = 1; - }, - [], passage() - )); - } - App.Events.addNode(f, r, "div", "indent"); + div = document.createElement("div"); + div.append(App.UI.DOM.makeCheckbox("headGirlTrainsSkills"), " Skills"); + App.UI.DOM.appendNewElement("div", f, div, "indent"); - if (V.seePreg !== 0 && S.HeadGirl) { - if (V.universalRulesImpregnation === "HG") { - f.append(`${HGName} is responsible for impregnating fertile slaves.`); - V.HGCum = resetHGCum(S.HeadGirl); - if (canPenetrate(S.HeadGirl) && S.HeadGirl.pubertyXY === 1) { - f.append(`To maximize the chances of impregnation, ${he} will fuck fertile pussies frequently during the week. ${S.HeadGirl.slaveName} can service ${V.HGCum} slaves this way.`); - if (S.HeadGirl.devotion > 95) { - f.append(`${He} loves you so much ${he}'ll fuck them until ${he}'s sore.`); - } else { - f.append(`If ${he} were more devoted to you, ${he} might be able to drive ${himself} to get hard and service one more.`); - } - if (S.HeadGirl.balls >= 120) { - r.push(`${His} unreal balls produce nearly an endless supply of semen; ${his} ability to impregnate is almost limitless.`); - } else if (S.HeadGirl.balls >= 80) { - r.push(`${His} inhuman balls produce so much semen ${he} can easily impregnate twenty girls in one sitting.`); - } else if (S.HeadGirl.balls >= 50) { - r.push(`${His} giant balls produce so much semen ${he} can easily impregnate twelve girls in one sitting.`); - } else if (S.HeadGirl.balls >= 25) { - r.push(`${His} oversized balls produce so much semen ${he} can cum repeatedly in a single session.`); - } else if (S.HeadGirl.balls >= 5) { - r.push(`${His} big balls produce so much semen ${he} can cum more before ${he}'s drained.`); - } else { - r.push(`Bigger balls would let ${him} cum more before ${he}'s drained.`); - } - if (S.HeadGirl.health.condition > 95) { - f.append(`${His} wonderful health lets ${him} get hard and stay hard all the time.`); - } else { - f.append(`If ${his} health were perfect, ${he} might be able to get hard more often.`); - } - if (S.HeadGirl.energy > 95) { - f.append(`${His} nymphomania drives ${him} to go above and beyond in this.`); - } else { - f.append(`A more powerful sex drive could reduce ${his} refractory period.`); - } - } else { - f.append(`However, ${S.HeadGirl.slaveName} cannot perform this duty.`); - } - r.push(App.UI.DOM.link(` Rescind ${his} impregnation responsibility`, () => { - V.universalRulesImpregnation = "none"; + App.UI.DOM.appendNewElement("div", f, "Training methods: ", "underline"); + + r = []; + if (V.HGSeverity === 1) { + r.push(`${HGName} will be <span class="bold">aggressive</span> when punishing, with rape strongly encouraged.`); + r.push(App.UI.DOM.link(" Moderate", () => { + V.HGSeverity = 0; + }, + [], passage() + )); + } else if (V.HGSeverity === 0) { + links = []; + r.push(`${HGName} will be <span class="bold">moderate</span> when punishing, carefully selecting appropriate consequences.`); + links.push(App.UI.DOM.link(" Be aggressive", () => { + V.HGSeverity = 1; + }, + [], passage() + )); + links.push(App.UI.DOM.link(` Apply restrictions`, () => { + V.HGSeverity = -1; + }, + [], passage() + )); + r.push(App.UI.DOM.generateLinksStrip(links)); + } else if (V.HGSeverity === -1) { + r.push(`${HGName} will be <span class="bold">respectful</span> when punishing, treating slaves decently.`); + r.push(App.UI.DOM.link(" Be stricter", () => { + V.HGSeverity = 0; + }, + [], passage() + )); + } + App.Events.addNode(f, r, "div", "indent"); + + r = []; + if (V.HGPiercings === 1) { + r.push(`${HGName} is <span class="bold">allowed</span> to use piercings as a tool to improve slaves' attitudes.`); + r.push(App.UI.DOM.link(" Disallow", () => { + V.HGPiercings = 0; + }, + [], passage() + )); + } else { + r.push(`${HGName} is <span class="bold">not allowed</span> to use piercings as a tool to improve slaves' attitudes.`); + r.push(App.UI.DOM.link(" Allow", () => { + V.HGPiercings = 1; }, [], passage() )); - r.push(App.UI.DOM.link(` See to it yourself`, () => { - V.universalRulesImpregnation = "PC"; + } + App.Events.addNode(f, r, "div", "indent"); + + r = []; + App.UI.DOM.appendNewElement("div", f, "Behavior towards you: ", "underline"); + if (V.HGFormality === 1) { + r.push(`${HGName} will be <span class="bold">formal:</span> you will always be called ${getWrittenTitle(S.HeadGirl)}, just like any other slave.`); + r.push(App.UI.DOM.link(" Allow private informality", () => { + V.HGFormality = 0; }, [], passage() )); - f.append(App.UI.DOM.generateLinksStrip(r)); } else { - if (canPenetrate(S.HeadGirl) && S.HeadGirl.pubertyXY === 1) { - App.UI.DOM.appendNewElement("div", f, `${HGName} is capable of impregnating slaves, but it's not part of ${his} responsibilities.`).append( - App.UI.DOM.link(` Assign ${him} to impregnate`, () => { - V.universalRulesImpregnation = "HG"; - }, - [], passage() - )); + r.push(`${HGName} is allowed to be <span class="bold">informal:</span> in private, you can be called ${properTitle()}.`); + r.push(App.UI.DOM.link(" Maintain complete formality", () => { + V.HGFormality = 1; + }, + [], passage() + )); + } + App.Events.addNode(f, r, "div", "indent"); + + if (V.seePreg !== 0) { + if (V.universalRulesImpregnation === "HG") { + f.append(`${HGName} is responsible for impregnating fertile slaves.`); + V.HGCum = resetHGCum(S.HeadGirl); + if (canPenetrate(S.HeadGirl) && S.HeadGirl.pubertyXY === 1) { + f.append(`To maximize the chances of impregnation, ${he} will fuck fertile pussies frequently during the week. ${S.HeadGirl.slaveName} can service ${V.HGCum} slaves this way.`); + if (S.HeadGirl.devotion > 95) { + f.append(`${He} loves you so much ${he}'ll fuck them until ${he}'s sore.`); + } else { + f.append(`If ${he} were more devoted to you, ${he} might be able to drive ${himself} to get hard and service one more.`); + } + if (S.HeadGirl.balls >= 120) { + r.push(`${His} unreal balls produce nearly an endless supply of semen; ${his} ability to impregnate is almost limitless.`); + } else if (S.HeadGirl.balls >= 80) { + r.push(`${His} inhuman balls produce so much semen ${he} can easily impregnate twenty girls in one sitting.`); + } else if (S.HeadGirl.balls >= 50) { + r.push(`${His} giant balls produce so much semen ${he} can easily impregnate twelve girls in one sitting.`); + } else if (S.HeadGirl.balls >= 25) { + r.push(`${His} oversized balls produce so much semen ${he} can cum repeatedly in a single session.`); + } else if (S.HeadGirl.balls >= 5) { + r.push(`${His} big balls produce so much semen ${he} can cum more before ${he}'s drained.`); + } else { + r.push(`Bigger balls would let ${him} cum more before ${he}'s drained.`); + } + if (S.HeadGirl.health.condition > 95) { + f.append(`${His} wonderful health lets ${him} get hard and stay hard all the time.`); + } else { + f.append(`If ${his} health were perfect, ${he} might be able to get hard more often.`); + } + if (S.HeadGirl.energy > 95) { + f.append(`${His} nymphomania drives ${him} to go above and beyond in this.`); + } else { + f.append(`A more powerful sex drive could reduce ${his} refractory period.`); + } + } else { + f.append(`However, ${S.HeadGirl.slaveName} cannot perform this duty.`); + } + r.push(App.UI.DOM.link(` Rescind ${his} impregnation responsibility`, () => { + V.universalRulesImpregnation = "none"; + }, + [], passage() + )); + r.push(App.UI.DOM.link(` See to it yourself`, () => { + V.universalRulesImpregnation = "PC"; + }, + [], passage() + )); + f.append(App.UI.DOM.generateLinksStrip(r)); + } else { + if (canPenetrate(S.HeadGirl) && S.HeadGirl.pubertyXY === 1) { + App.UI.DOM.appendNewElement("div", f, `${HGName} is capable of impregnating slaves, but it's not part of ${his} responsibilities.`).append( + App.UI.DOM.link(` Assign ${him} to impregnate`, () => { + V.universalRulesImpregnation = "HG"; + }, + [], passage() + )); + } } } + } else { + f.append(`No HeadGirl assigned, appoint one from your devoted slaves.`); } - f.append(App.UI.SlaveList.facilityManagerSelection(App.Entity.facilities.headGirlSuite, "Main")); + f.append(App.UI.SlaveList.facilityManagerSelection(App.Entity.facilities.headGirlSuite, "HG Select")); return f; }; diff --git a/src/facilities/penthouse/RecruiterSelect.js b/src/facilities/penthouse/RecruiterSelect.js index 8f143a82e5906260efded3d1c1b1e4c8c27b89c3..9ba675579b8ae80e7e84b379c2c7d1548e7907e2 100644 --- a/src/facilities/penthouse/RecruiterSelect.js +++ b/src/facilities/penthouse/RecruiterSelect.js @@ -3,6 +3,8 @@ App.Facilities.RecruiterSelect = function() { const recruiterCap = document.createDocumentFragment(); let newLine = document.createElement("div"); let r = []; + + App.UI.DOM.appendNewElement("h1", f, "Recruiter Management"); if (S.Recruiter) { f.append(`${SlaveFullName(S.Recruiter)} is working as your Recruiter, currently ${V.recruiterTarget !== "other arcologies" ? 'recruiting girls. ' : 'acting as a sexual Ambassador'}`); @@ -24,137 +26,137 @@ App.Facilities.RecruiterSelect = function() { }, [], "Main" )); - } else { - f.append(`No Recruiter assigned, appoint one from your devoted slaves.`); - } - - App.UI.DOM.appendNewElement("div", f); - f.append(`Your recruiter will target ${V.recruiterTarget}, `); - if (V.recruiterTarget === "desperate whores") { - f.append("they will be skilled but unhealthy. "); - } else if (V.recruiterTarget === "young migrants") { - f.append("they will be young and inexperienced but unhealthy. "); - } else if (V.recruiterTarget === "Will be mature") { - f.append("they will be mature. "); - } else if (V.recruiterTarget === "expectant mothers") { - f.append("they will be pregnant and likely unhealthy. "); - } else if (V.recruiterTarget === "dissolute sissies") { - f.append("they will be born male and have some experience. "); - } else if (V.recruiterTarget === "reassignment candidates") { - f.append("they will be born male. "); - } else if (V.recruiterTarget === "other arcologies") { - f.append("they will appoint the Recruiter to be a sexual Ambassador. "); - } + + App.UI.DOM.appendNewElement("div", f); + f.append(`Your recruiter will target ${V.recruiterTarget}, `); + if (V.recruiterTarget === "desperate whores") { + f.append("they will be skilled but unhealthy. "); + } else if (V.recruiterTarget === "young migrants") { + f.append("they will be young and inexperienced but unhealthy. "); + } else if (V.recruiterTarget === "Will be mature") { + f.append("they will be mature. "); + } else if (V.recruiterTarget === "expectant mothers") { + f.append("they will be pregnant and likely unhealthy. "); + } else if (V.recruiterTarget === "dissolute sissies") { + f.append("they will be born male and have some experience. "); + } else if (V.recruiterTarget === "reassignment candidates") { + f.append("they will be born male. "); + } else if (V.recruiterTarget === "other arcologies") { + f.append("they will appoint the Recruiter to be a sexual Ambassador. "); + } - r.push(App.UI.DOM.link(`Desperate whores`, () => { - V.recruiterTarget = "desperate whores"; - }, - [], passage() - )); - - r.push(App.UI.DOM.link("Young migrants", () => { - V.recruiterTarget = "young migrants"; - }, - [], passage() - )); - - r.push(App.UI.DOM.link("Recent divorcees", () => { - V.recruiterTarget = "recent divorcees"; - }, - [], passage() - )); - - if (V.seeDicks !== 100 && V.seePreg !== 0) { - r.push(App.UI.DOM.link("Expectant mothers", () => { - V.recruiterTarget = "expectant mothers"; + r.push(App.UI.DOM.link(`Desperate whores`, () => { + V.recruiterTarget = "desperate whores"; }, [], passage() )); - } - if (V.seeDicks !== 0) { - r.push(App.UI.DOM.link("Dissolute sissies", () => { - V.recruiterTarget = "dissolute sissies"; + r.push(App.UI.DOM.link("Young migrants", () => { + V.recruiterTarget = "young migrants"; }, [], passage() )); - r.push(App.UI.DOM.link("Reassignment candidates", () => { - V.recruiterTarget = "reassignment candidates"; + r.push(App.UI.DOM.link("Recent divorcees", () => { + V.recruiterTarget = "recent divorcees"; }, [], passage() )); - } - if (V.arcologies.length > 1) { - r.push(App.UI.DOM.link("Other arcologies' cultures", () => { - V.oldRecruiterTarget = V.recruiterTarget; - V.recruiterTarget = "other arcologies"; + if (V.seeDicks !== 100 && V.seePreg !== 0) { + r.push(App.UI.DOM.link("Expectant mothers", () => { + V.recruiterTarget = "expectant mothers"; + }, + [], passage() + )); + } + + if (V.seeDicks !== 0) { + r.push(App.UI.DOM.link("Dissolute sissies", () => { + V.recruiterTarget = "dissolute sissies"; + }, + [], passage() + )); + + r.push(App.UI.DOM.link("Reassignment candidates", () => { + V.recruiterTarget = "reassignment candidates"; + }, + [], passage() + )); + } + + if (V.arcologies.length > 1) { + r.push(App.UI.DOM.link("Other arcologies' cultures", () => { + V.oldRecruiterTarget = V.recruiterTarget; + V.recruiterTarget = "other arcologies"; + }, + [], passage() + )); + } + + f.append(App.UI.DOM.generateLinksStrip(r)); + + newLine.append(App.UI.DOM.makeCheckbox("recruiterEugenics"), App.UI.DOM.makeElement("note", " Target only individuals that can pass eugenics SMRs. This option will increase time it takes to recruit depending on how many eugenics SMR are active.")); + f.append(newLine); + + let idleTarget = 2 + + (V.brothel + V.club + V.arcade + V.dairy + V.servantsQuarters) + + V.masterSuite + V.HGSuite + V.dojo + V.brothel + V.club; + if (V.dairy && V.dairyRestraintsSetting < 2) { + idleTarget++; + } + idleTarget += V.farmyard + V.servantsQuarters + V.masterSuite + V.schoolroom + V.spa; + idleTarget += V.nursery + V.clinic + V.cellblock; + + newLine = document.createElement("div"); + newLine.append("Suspend active recruiting and focus on publicity when: "); + if (V.recruiterIdleRule === "number") { + newLine.append(`${V.recruiterIdleNumber} sex slaves owned`); + } else if (V.recruiterIdleRule === "facility") { + newLine.append(`match facility expansion, `); + if (idleTarget >= 20) { + newLine.append(`${idleTarget} positions.`); + } else { + newLine.append("20 positions (rule minimum)."); + } + } else { + newLine.append("always recruit"); + } + f.append(newLine); + + r = []; + r.push(App.UI.DOM.link("Always recruit", () => { + V.recruiterIdleRule = "always"; + }, + [], passage() + )); + r.push(App.UI.DOM.link("Facilities & leadership", () => { + V.recruiterIdleRule = "facility"; }, [], passage() )); - } - f.append(App.UI.DOM.generateLinksStrip(r)); + recruiterCap.append(App.UI.DOM.link("Set to this many slaves ", () => { + V.recruiterIdleRule = "number"; + }, + [], passage() + )); + if (V.recruiterIdleRule === "number") { + recruiterCap.append(App.UI.DOM.makeTextBox(V.recruiterIdleNumber, (v) => { + V.recruiterIdleNumber = v; + Engine.play(passage()); + }, true)); + } + r.push(recruiterCap); - newLine.append(App.UI.DOM.makeCheckbox("recruiterEugenics"), App.UI.DOM.makeElement("note", " Target only individuals that can pass eugenics SMRs. This option will increase time it takes to recruit depending on how many eugenics SMR are active.")); - f.append(newLine); + f.append(App.UI.DOM.generateLinksStrip(r)); + App.UI.DOM.appendNewElement("div", f, "'Facilities' doesn't include training slots in cellblock, schoolroom, spa, clinic (but does include those leaders)"); - let idleTarget = 2 + - (V.brothel + V.club + V.arcade + V.dairy + V.servantsQuarters) + - V.masterSuite + V.HGSuite + V.dojo + V.brothel + V.club; - if (V.dairy && V.dairyRestraintsSetting < 2) { - idleTarget++; - } - idleTarget += V.farmyard + V.servantsQuarters + V.masterSuite + V.schoolroom + V.spa; - idleTarget += V.nursery + V.clinic + V.cellblock; - - newLine = document.createElement("div"); - newLine.append("Suspend active recruiting and focus on publicity when: "); - if (V.recruiterIdleRule === "number") { - newLine.append(`${V.recruiterIdleNumber} sex slaves owned`); - } else if (V.recruiterIdleRule === "facility") { - newLine.append(`match facility expansion, `); - if (idleTarget >= 20) { - newLine.append(`${idleTarget} positions.`); - } else { - newLine.append("20 positions (rule minimum)."); - } + V.recruiterIdleNumber = Math.max(Math.trunc(Number(V.recruiterIdleNumber) || 20), 20); } else { - newLine.append("always recruit"); - } - f.append(newLine); - - r = []; - r.push(App.UI.DOM.link("Always recruit", () => { - V.recruiterIdleRule = "always"; - }, - [], passage() - )); - r.push(App.UI.DOM.link("Facilities & leadership", () => { - V.recruiterIdleRule = "facility"; - }, - [], passage() - )); - - recruiterCap.append(App.UI.DOM.link("Set to this many slaves ", () => { - V.recruiterIdleRule = "number"; - }, - [], passage() - )); - if (V.recruiterIdleRule === "number") { - recruiterCap.append(App.UI.DOM.makeTextBox(V.recruiterIdleNumber, (v) => { - V.recruiterIdleNumber = v; - Engine.play(passage()); - }, true)); + f.append(`No Recruiter assigned, appoint one from your devoted slaves.`); } - r.push(recruiterCap); - - f.append(App.UI.DOM.generateLinksStrip(r)); - App.UI.DOM.appendNewElement("div", f, "'Facilities' doesn't include training slots in cellblock, schoolroom, spa, clinic (but does include those leaders)"); - - V.recruiterIdleNumber = Math.max(Math.trunc(Number(V.recruiterIdleNumber) || 20), 20); - f.append(App.UI.SlaveList.facilityManagerSelection(App.Entity.facilities.penthouse, "Main")); + f.append(App.UI.SlaveList.facilityManagerSelection(App.Entity.facilities.penthouse, "Recruiter Select")); return f; };