From 38d5e24cbd2793fcc22bd93360345bb2ccfc2609 Mon Sep 17 00:00:00 2001 From: Blank_Alt <12406-Blank_Alt@users.noreply.gitgud.io> Date: Wed, 4 May 2022 19:07:33 +0000 Subject: [PATCH] SlaveCareerStringification --- src/002-config/fc-version.js | 2 +- src/004-base/facility.js | 3 +- src/Mods/DinnerParty/dinnerPartyExecution.tw | 2 +- .../backwardsCompatibility.js | 1 + .../updateSlaveObject.js | 1 + src/events/RESS/arcadeSadist.js | 36 +-- src/events/RESS/review/usedWhore.js | 1 - src/interaction/sellSlave.js | 74 +++--- src/js/SlaveState.js | 4 +- src/js/slaveCostJS.js | 78 +++---- src/npc/children/ChildState.js | 6 +- src/npc/descriptions/career.js | 216 +++++++++--------- 12 files changed, 197 insertions(+), 227 deletions(-) diff --git a/src/002-config/fc-version.js b/src/002-config/fc-version.js index 68da110521d..25140c6fcde 100644 --- a/src/002-config/fc-version.js +++ b/src/002-config/fc-version.js @@ -2,5 +2,5 @@ App.Version = { base: "0.10.7.1", // The vanilla version the mod is based off of, this should never be changed. pmod: "4.0.0-alpha.14", commitHash: null, - release: 1169, // When getting close to 2000, please remove the check located within the onLoad() function defined at line five of src/js/eventHandlers.js. + release: 1170, // When getting close to 2000, please remove the check located within the onLoad() function defined at line five of src/js/eventHandlers.js. }; diff --git a/src/004-base/facility.js b/src/004-base/facility.js index 1063d5cd6f8..e5c54f0f896 100644 --- a/src/004-base/facility.js +++ b/src/004-base/facility.js @@ -207,8 +207,7 @@ App.Entity.Facilities.ManagingJob = class extends App.Entity.Facilities.Job { * @returns {boolean} */ slaveHasExperience(slave) { - return (this.desc.skill !== null && slave.skill[this.desc.skill] >= V.masteredXP) || - (typeof slave.career === 'string' && this.desc.careers.includes(slave.career)); + return (this.desc.skill && slave.skill[this.desc.skill] >= V.masteredXP) || (this.desc.careers.includes(slave.career)); } /** @returns {App.Entity.SlaveState} */ diff --git a/src/Mods/DinnerParty/dinnerPartyExecution.tw b/src/Mods/DinnerParty/dinnerPartyExecution.tw index a78bdb119d4..f923b0be5c5 100644 --- a/src/Mods/DinnerParty/dinnerPartyExecution.tw +++ b/src/Mods/DinnerParty/dinnerPartyExecution.tw @@ -555,7 +555,7 @@ <<set _slave.trust = -2>> <<set _slave.oldDevotion = -20>> <<set _slave.origin = "$He was once an arcology owner like yourself, who made the mistake of insulting you.">> - <<set _slave.career = 0>> + <<set _slave.career = "a slave">> <<set _slave.prestige = 3>> <<set _slave.prestigeDesc = "You stormed $his arcology, killed $his guards, and enslaved $him in revenge for insulting you at a dinner party.">> <<run setHealth(_slave, 20, random(5, 15), 0, 0, 0)>> diff --git a/src/data/backwardsCompatibility/backwardsCompatibility.js b/src/data/backwardsCompatibility/backwardsCompatibility.js index 4b5b6d0372d..c104e5d782e 100644 --- a/src/data/backwardsCompatibility/backwardsCompatibility.js +++ b/src/data/backwardsCompatibility/backwardsCompatibility.js @@ -1687,6 +1687,7 @@ App.Update.arcologyLocation = function(node) { }; App.Update.oldVersions = function(node) { + V.slaves.filter(s => s.career === 0).forEach(s => s.career = "a slave"); V.slaves.filter(s => s.origin === 0).forEach(s => s.origin = ""); if (V.releaseID === 1021 || V.releaseID === 1020 || V.releaseID === 1019 || V.releaseID === 2022) { V.releaseID = 1022; diff --git a/src/data/backwardsCompatibility/updateSlaveObject.js b/src/data/backwardsCompatibility/updateSlaveObject.js index ef97357da7d..a88e58b40ab 100644 --- a/src/data/backwardsCompatibility/updateSlaveObject.js +++ b/src/data/backwardsCompatibility/updateSlaveObject.js @@ -4,6 +4,7 @@ * @param {boolean} [genepool=false] */ App.Update.Slave = function(slave, genepool = false) { + slave.career = slave.career || "a slave"; slave.origin = slave.origin || ""; const quirks = {}; App.Data.geneticQuirks.forEach((value, q) => quirks[q] = 0); diff --git a/src/events/RESS/arcadeSadist.js b/src/events/RESS/arcadeSadist.js index d589c641919..d0fe05d609d 100644 --- a/src/events/RESS/arcadeSadist.js +++ b/src/events/RESS/arcadeSadist.js @@ -29,6 +29,7 @@ App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEven He, he, his, him, himself, girl } = getPronouns(eventSlave); const {title: Master, say} = getEnunciation(eventSlave); + const hasSight = canSee(eventSlave); let artDiv = document.createElement("div"); // named container so we can replace it later App.Events.drawEventArt(artDiv, eventSlave); @@ -104,12 +105,7 @@ App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEven } else { r.push(`Once you've led ${him}`); } - r.push(`in there, ${he} stops and`); - if (canSee(eventSlave)) { - r.push(`watches`); - } else { - r.push(`listens`); - } + r.push(`in there, ${he} stops and ${hasSight ? 'watches' : 'listens'}`); if (V.PC.belly >= 100000 || V.PC.weight > 130) { r.push(r.pop() + `as you struggle to join ${him} in the increasingly cramped space.`); } else if (V.PC.belly >= 5000) { @@ -198,12 +194,7 @@ App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEven } else { r.push(`steadily pushing ${himself} along,`); } - if (canSee(eventSlave)) { - r.push(`staring at`); - } else { - r.push(`facing`); - } - r.push(`you with a profound look of mixed <span class="trust inc">trust for your understanding of ${his} horrible sadism,</span> and deep unease that this is what truly gets ${him} off.`); + r.push(`${hasSight ? 'staring at' : 'facing'} you with a profound look of mixed <span class="trust inc">trust for your understanding of ${his} horrible sadism,</span> and deep unease that this is what truly gets ${him} off.`); eventSlave.trust += 5; return r; } @@ -217,19 +208,9 @@ App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEven App.Events.drawEventArt(artDiv, [eventSlave, randomArcadeSlave], [eventSlave.clothes, "no clothing"]); r.push(`${He} seems to be focusing on the purely physical aspects of the degradation here. The true meaning of this place is so much more, and you decide to share it with ${him}. You call ${his} name, tearing ${his} attention away from the spectacle mere`); - if (V.showInches === 2) { - r.push(`inches`); - } else { - r.push(`centimeters`); - } - r.push(`over your heads, and`); - if (canSee(eventSlave)) { - r.push(`point`); - } else { - r.push(`direct ${him}`); - } + r.push(`${V.showInches === 2 ? 'inches' : 'centimeters'} over your heads, and ${hasSight ? 'point' : `direct ${him}`}`); r.push(`to a particular slave. You tell ${eventSlave.slaveName} that this particular Arcade inmate's name is ${SlaveFullName(randomArcadeSlave)}.`); - if (randomArcadeSlave.career !== 0) { + if (randomArcadeSlave.career !== "a slave") { r.push(`You tell ${him} that ${he2} is ${randomArcadeSlave.actualAge} years old, that ${he2} is ${randomArcadeSlave.nationality}, and that ${he2} was once ${convertCareer(randomArcadeSlave)}.`); } else { r.push(`You tell ${him} that ${he2} is ${randomArcadeSlave.actualAge} years old and ${randomArcadeSlave.nationality}.`); @@ -251,12 +232,7 @@ App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEven } else { r.push(`orgasming.`); } - r.push(`${He} came without being touched. ${He}`); - if (canSee(eventSlave)) { - r.push(`stares at`); - } else { - r.push(`faces`); - } + r.push(`${He} came without being touched. ${He} ${hasSight ? 'stares at' : 'faces'}`); r.push(`the mess ${he} made just by being in the presence of the arcology's <span class="devotion inc">undisputed preeminent sadist;</span> ${he} shudders at the sheer gothic glory of it. ${He} has a new moment to think of when ${he} feels like <span class="fetish inc">indulging ${his} own sadism.</span>`); eventSlave.devotion += 5; eventSlave.fetishStrength = Math.clamp(eventSlave.fetishStrength + 10, 0, 100); diff --git a/src/events/RESS/review/usedWhore.js b/src/events/RESS/review/usedWhore.js index dce40570926..90ef6cd54cb 100644 --- a/src/events/RESS/review/usedWhore.js +++ b/src/events/RESS/review/usedWhore.js @@ -416,7 +416,6 @@ App.Events.RESSUsedWhore = class RESSUsedWhore extends App.Events.BaseEvent { case "a Futanari Sister": case "a slave": case "a slave since birth": - case 0: r.push(`once upon a time.`); break; default: diff --git a/src/interaction/sellSlave.js b/src/interaction/sellSlave.js index 921528494d2..06ed5b232bf 100644 --- a/src/interaction/sellSlave.js +++ b/src/interaction/sellSlave.js @@ -315,44 +315,42 @@ App.Interact.sellSlave = function(slave) { t.push(`${He} appears to be neotonic, which will turn off some but attract others. Overall should prove positive though.`); } - if (slave.career !== 0) { - if (App.Data.Careers.Leader.bodyguard.includes(slave.career)) { - t.push(`${His} background would help make ${him} a good Bodyguard; that's valuable.`); - } else if (App.Data.Careers.Leader.wardeness.includes(slave.career)) { - t.push(`${His} background would help make ${him} a good Wardeness; that's valuable.`); - } else if (App.Data.Careers.Leader.attendant.includes(slave.career)) { - t.push(`${His} background would help make ${him} a good Attendant; that's valuable.`); - } else if (App.Data.Careers.Leader.nurse.includes(slave.career)) { - t.push(`${His} background would help make ${him} a good Nurse; that's valuable.`); - } else if (App.Data.Careers.Leader.matron.includes(slave.career)) { - t.push(`${His} background would help make ${him} a good Matron; that's valuable.`); - } else if (App.Data.Careers.Leader.schoolteacher.includes(slave.career)) { - t.push(`${His} background would help make ${him} a good Schoolteacher; that's valuable.`); - } else if (App.Data.Careers.Leader.stewardess.includes(slave.career)) { - t.push(`${His} background would help make ${him} a good Stewardess; that's valuable.`); - } else if (App.Data.Careers.Leader.milkmaid.includes(slave.career)) { - t.push(`${His} background would help make ${him} a good Milkmaid; that's valuable.`); - } else if (App.Data.Careers.Leader.farmer.includes(slave.career)) { - t.push(`${His} background would help make ${him} a good Farmer; that's valuable.`); - } else if (App.Data.Careers.Leader.madam.includes(slave.career)) { - t.push(`${His} background would help make ${him} a good Madam; that's valuable.`); - } else if (App.Data.Careers.Leader.DJ.includes(slave.career)) { - t.push(`${His} background would help make ${him} a good DJ; that's valuable.`); - } else if (App.Data.Careers.Leader.HG.includes(slave.career)) { - t.push(`${His} background would help make ${him} a good Head Girl; that's valuable.`); - } else if (App.Data.Careers.Leader.recruiter.includes(slave.career)) { - t.push(`${His} background would help make ${him} a good Recruiter; that's valuable.`); - } else if (App.Data.Careers.General.entertainment.includes(slave.career)) { - t.push(`${His} background should help ${his} flirting a little.`); - } else if (App.Data.Careers.General.whore.includes(slave.career)) { - t.push(`${His} background should help ${his} fucking a little.`); - } else if (App.Data.Careers.General.grateful.includes(slave.career)) { - t.push(`${His} background should make ${him} a bit more trusting.`); - } else if (App.Data.Careers.General.menial.includes(slave.career)) { - t.push(`${His} background should make ${him} a bit more tractable.`); - } else if (App.Data.Careers.General.servant.includes(slave.career)) { - t.push(`${His} background should make ${him} a good servant.`); - } + if (App.Data.Careers.Leader.bodyguard.includes(slave.career)) { + t.push(`${His} background would help make ${him} a good Bodyguard; that's valuable.`); + } else if (App.Data.Careers.Leader.wardeness.includes(slave.career)) { + t.push(`${His} background would help make ${him} a good Wardeness; that's valuable.`); + } else if (App.Data.Careers.Leader.attendant.includes(slave.career)) { + t.push(`${His} background would help make ${him} a good Attendant; that's valuable.`); + } else if (App.Data.Careers.Leader.nurse.includes(slave.career)) { + t.push(`${His} background would help make ${him} a good Nurse; that's valuable.`); + } else if (App.Data.Careers.Leader.matron.includes(slave.career)) { + t.push(`${His} background would help make ${him} a good Matron; that's valuable.`); + } else if (App.Data.Careers.Leader.schoolteacher.includes(slave.career)) { + t.push(`${His} background would help make ${him} a good Schoolteacher; that's valuable.`); + } else if (App.Data.Careers.Leader.stewardess.includes(slave.career)) { + t.push(`${His} background would help make ${him} a good Stewardess; that's valuable.`); + } else if (App.Data.Careers.Leader.milkmaid.includes(slave.career)) { + t.push(`${His} background would help make ${him} a good Milkmaid; that's valuable.`); + } else if (App.Data.Careers.Leader.farmer.includes(slave.career)) { + t.push(`${His} background would help make ${him} a good Farmer; that's valuable.`); + } else if (App.Data.Careers.Leader.madam.includes(slave.career)) { + t.push(`${His} background would help make ${him} a good Madam; that's valuable.`); + } else if (App.Data.Careers.Leader.DJ.includes(slave.career)) { + t.push(`${His} background would help make ${him} a good DJ; that's valuable.`); + } else if (App.Data.Careers.Leader.HG.includes(slave.career)) { + t.push(`${His} background would help make ${him} a good Head Girl; that's valuable.`); + } else if (App.Data.Careers.Leader.recruiter.includes(slave.career)) { + t.push(`${His} background would help make ${him} a good Recruiter; that's valuable.`); + } else if (App.Data.Careers.General.entertainment.includes(slave.career)) { + t.push(`${His} background should help ${his} flirting a little.`); + } else if (App.Data.Careers.General.whore.includes(slave.career)) { + t.push(`${His} background should help ${his} fucking a little.`); + } else if (App.Data.Careers.General.grateful.includes(slave.career)) { + t.push(`${His} background should make ${him} a bit more trusting.`); + } else if (App.Data.Careers.General.menial.includes(slave.career)) { + t.push(`${His} background should make ${him} a bit more tractable.`); + } else if (App.Data.Careers.General.servant.includes(slave.career)) { + t.push(`${His} background should make ${him} a good servant.`); } if ((V.week - slave.weekAcquired >= 20) && (slave.skill.entertainment >= 100)) { if (!App.Data.Careers.General.entertainment.includes(slave.career)) { diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js index 2591ca65494..4e4ffec6e55 100644 --- a/src/js/SlaveState.js +++ b/src/js/SlaveState.js @@ -613,8 +613,8 @@ App.Entity.SlaveState = class SlaveState { * @type {string} */ this.origin = ""; /** career prior to enslavement - * @type {FC.Zeroable<string>} */ - this.career = 0; + * @type {string} */ + this.career = "a slave"; /** slave's ID */ this.ID = 0; /** slave's prestige */ diff --git a/src/js/slaveCostJS.js b/src/js/slaveCostJS.js index 0553eceb285..fbf8596cb9b 100644 --- a/src/js/slaveCostJS.js +++ b/src/js/slaveCostJS.js @@ -2756,46 +2756,44 @@ globalThis.slaveCostBeauty = function(slave, isStartingSlave, followLaws, isSpec * @param {App.Entity.SlaveState} slave */ function calcCareersCost(slave) { - if (slave.career !== 0) { - if (slave.career === "a slave") { - updateMultiplier(`career`, 0.1); - } else if (App.Data.Careers.Leader.bodyguard.includes(slave.career)) { - updateMultiplier(`career`, 0.1); - } else if (App.Data.Careers.Leader.wardeness.includes(slave.career)) { - updateMultiplier(`career`, 0.1); - } else if (App.Data.Careers.Leader.attendant.includes(slave.career)) { - updateMultiplier(`career`, 0.1); - } else if (App.Data.Careers.Leader.nurse.includes(slave.career)) { - updateMultiplier(`career`, 0.1); - } else if (App.Data.Careers.Leader.matron.includes(slave.career)) { - updateMultiplier(`career`, 0.1); - } else if (App.Data.Careers.Leader.schoolteacher.includes(slave.career)) { - updateMultiplier(`career`, 0.1); - } else if (App.Data.Careers.Leader.stewardess.includes(slave.career)) { - updateMultiplier(`career`, 0.1); - } else if (App.Data.Careers.Leader.milkmaid.includes(slave.career)) { - updateMultiplier(`career`, 0.1); - } else if (App.Data.Careers.Leader.farmer.includes(slave.career)) { - updateMultiplier(`career`, 0.1); - } else if (App.Data.Careers.Leader.madam.includes(slave.career)) { - updateMultiplier(`career`, 0.1); - } else if (App.Data.Careers.Leader.DJ.includes(slave.career)) { - updateMultiplier(`career`, 0.1); - } else if (App.Data.Careers.Leader.HG.includes(slave.career)) { - updateMultiplier(`career`, 0.1); - } else if (App.Data.Careers.Leader.recruiter.includes(slave.career)) { - updateMultiplier(`career`, 0.1); - } else if (App.Data.Careers.General.entertainment.includes(slave.career)) { - updateMultiplier(`career`, 0.05); - } else if (App.Data.Careers.General.whore.includes(slave.career)) { - updateMultiplier(`career`, 0.05); - } else if (App.Data.Careers.General.grateful.includes(slave.career)) { - updateMultiplier(`career`, 0.05); - } else if (App.Data.Careers.General.menial.includes(slave.career)) { - updateMultiplier(`career`, 0.05); - } else if (App.Data.Careers.General.servant.includes(slave.career)) { - updateMultiplier(`career`, 0.05); - } + if (slave.career === "a slave") { + updateMultiplier(`career`, 0.1); + } else if (App.Data.Careers.Leader.bodyguard.includes(slave.career)) { + updateMultiplier(`career`, 0.1); + } else if (App.Data.Careers.Leader.wardeness.includes(slave.career)) { + updateMultiplier(`career`, 0.1); + } else if (App.Data.Careers.Leader.attendant.includes(slave.career)) { + updateMultiplier(`career`, 0.1); + } else if (App.Data.Careers.Leader.nurse.includes(slave.career)) { + updateMultiplier(`career`, 0.1); + } else if (App.Data.Careers.Leader.matron.includes(slave.career)) { + updateMultiplier(`career`, 0.1); + } else if (App.Data.Careers.Leader.schoolteacher.includes(slave.career)) { + updateMultiplier(`career`, 0.1); + } else if (App.Data.Careers.Leader.stewardess.includes(slave.career)) { + updateMultiplier(`career`, 0.1); + } else if (App.Data.Careers.Leader.milkmaid.includes(slave.career)) { + updateMultiplier(`career`, 0.1); + } else if (App.Data.Careers.Leader.farmer.includes(slave.career)) { + updateMultiplier(`career`, 0.1); + } else if (App.Data.Careers.Leader.madam.includes(slave.career)) { + updateMultiplier(`career`, 0.1); + } else if (App.Data.Careers.Leader.DJ.includes(slave.career)) { + updateMultiplier(`career`, 0.1); + } else if (App.Data.Careers.Leader.HG.includes(slave.career)) { + updateMultiplier(`career`, 0.1); + } else if (App.Data.Careers.Leader.recruiter.includes(slave.career)) { + updateMultiplier(`career`, 0.1); + } else if (App.Data.Careers.General.entertainment.includes(slave.career)) { + updateMultiplier(`career`, 0.05); + } else if (App.Data.Careers.General.whore.includes(slave.career)) { + updateMultiplier(`career`, 0.05); + } else if (App.Data.Careers.General.grateful.includes(slave.career)) { + updateMultiplier(`career`, 0.05); + } else if (App.Data.Careers.General.menial.includes(slave.career)) { + updateMultiplier(`career`, 0.05); + } else if (App.Data.Careers.General.servant.includes(slave.career)) { + updateMultiplier(`career`, 0.05); } if (V.week - slave.weekAcquired >= 20 && slave.skill.entertainment >= 100) { if (!App.Data.Careers.General.entertainment.includes(slave.career)) { diff --git a/src/npc/children/ChildState.js b/src/npc/children/ChildState.js index 308179296ee..febdfae4c1a 100644 --- a/src/npc/children/ChildState.js +++ b/src/npc/children/ChildState.js @@ -24,11 +24,11 @@ App.Facilities.Nursery.ChildState = class ChildState { * _0: Obtained prior to game start / at game start_ */ this.weekAcquired = 0; /** Child's origin - * @type {FC.Zeroable<string>} */ + * @type {string} */ this.origin = "$He was born and raised in your arcology."; /** Career prior to enslavement - * @type {FC.Zeroable<string>} */ - this.career = 0; + * @type {string} */ + this.career = "a slave"; /** Child's ID */ this.ID = 0; /** diff --git a/src/npc/descriptions/career.js b/src/npc/descriptions/career.js index 692cda989f1..10bad3191c3 100644 --- a/src/npc/descriptions/career.js +++ b/src/npc/descriptions/career.js @@ -10,117 +10,115 @@ App.Desc.career = function(slave) { const career = convertCareer(slave); if (slave.fuckdoll === 0) { - if (slave.career !== 0) { - if (slave.career === "a slave") { - r.push(`${He} was a slave long before you obtained ${him}.`); - } else if (slave.career === "a slave since birth") { - r.push(`${He}'s been your slave ${his} entire life.`); - } else if (slave.career === "a meat toilet" || slave.career === "a cum dump") { - r.push(`${He} sees ${himself} as a cum receptacle.`); - } else if (slave.career === "a dairy cow") { - r.push(`${He}'s been broken into the belief that ${he} is nothing more than a cow to be milked and bred.`); - } else if (slave.career === "a breeding bull") { - r.push(`${He}'s been broken into the belief that ${he} is nothing more than a bull destined to fill fertile wombs with calves.`); - } else if (slave.career === "a breeder") { - r.push(`Before you obtained ${him}, ${he} was a breeding slave.`); - } else if (slave.career === "a bioreactor") { - r.push(`${He} has spent time as a cow in an industrial dairy, an experience that marked ${him} deeply.`); - } else { - r.push(`Before ${he} was a slave, ${he} was`); - if (App.Data.Careers.Leader.bodyguard.includes(slave.career)) { - r.push(`${career}, giving ${him} potential as a Bodyguard.`); - } else if (App.Data.Careers.Leader.wardeness.includes(slave.career)) { - r.push(`${career}, giving ${him} potential as a Wardeness for`); - if (V.cellblock === 0) { - r.push(`a Cellblock.`); - } else { - r.push(`${V.cellblockName}.`); - } - } else if (App.Data.Careers.Leader.attendant.includes(slave.career)) { - r.push(`${career}, giving ${him} potential as an Attendant for`); - if (V.spa === 0) { - r.push(`a Spa.`); - } else { - r.push(`${V.spaName}.`); - } - } else if (App.Data.Careers.Leader.matron.includes(slave.career)) { - r.push(`${career}, giving ${him} potential as a Matron for`); - if (V.nursery === 0 && V.nurseryNannies === 0) { - r.push(`a Nursery.`); - } else { - r.push(`${V.nurseryName}.`); - } - } else if (App.Data.Careers.Leader.nurse.includes(slave.career)) { - r.push(`${career}, giving ${him} potential as a Nurse for`); - if (V.clinic === 0) { - r.push(`a Clinic.`); - } else { - r.push(`${V.clinicName}.`); - } - } else if (App.Data.Careers.Leader.schoolteacher.includes(slave.career)) { - r.push(`${career}, giving ${him} potential as a Schoolteacher for`); - if (V.schoolroom === 0) { - r.push(`a Schoolroom.`); - } else { - r.push(`${V.schoolroomName}.`); - } - } else if (App.Data.Careers.Leader.stewardess.includes(slave.career)) { - r.push(`${career}, giving ${him} potential as a Stewardess for`); - if (V.servantsQuarters === 0) { - r.push(`a Servant's Quarters.`); - } else { - r.push(`${V.servantsQuartersName}.`); - } - } else if (App.Data.Careers.Leader.milkmaid.includes(slave.career)) { - r.push(`${career}, giving ${him} potential as a Milkmaid for`); - if (V.dairy === 0) { - r.push(`a Dairy.`); - } else { - r.push(`${V.dairyName}.`); - } - } else if (App.Data.Careers.Leader.farmer.includes(slave.career)) { - r.push(`${career}, giving ${him} potential as a Farmer for`); - if (V.farmyard === 0) { - r.push(`a Farmyard.`); - } else { - r.push(`${V.farmyardName}.`); - } - } else if (App.Data.Careers.Leader.madam.includes(slave.career)) { - r.push(`${career}, giving ${him} potential as a Madam for`); - if (V.brothel === 0) { - r.push(`a Brothel.`); - } else { - r.push(`${V.brothelName}.`); - } - } else if (App.Data.Careers.Leader.DJ.includes(slave.career)) { - r.push(`${career}, giving ${him} potential as a DJ for`); - if (V.club === 0) { - r.push(`a Club.`); - } else { - r.push(`${V.clubName}.`); - } - } else if (App.Data.Careers.Leader.HG.includes(slave.career)) { - r.push(`${career}, giving ${him} potential as a Head Girl.`); - } else if (App.Data.Careers.Leader.recruiter.includes(slave.career)) { - r.push(`${career}, giving ${him} potential as a recruiter.`); - } else if (App.Data.Careers.General.entertainment.includes(slave.career)) { - r.push(`${career}, giving ${him} a slight edge at entertainment.`); - } else if (App.Data.Careers.General.whore.includes(slave.career)) { - r.push(`${career}, giving ${him} a slight edge at sexual commerce.`); - } else if (App.Data.Careers.General.grateful.includes(slave.career)) { - r.push(`${career}, so ${he} can remember what it's like`); - if (slave.career === "prisoner") { - r.push(`no one looking out for you.`); - } else { - r.push(`to have the freedom to starve.`); - } - } else if (App.Data.Careers.General.menial.includes(slave.career)) { - r.push(`${career}, giving ${him} experience following orders.`); - } else if (App.Data.Careers.General.servant.includes(slave.career)) { - r.push(`${career}, giving ${him} a slight edge in housekeeping.`); + if (slave.career === "a slave") { + r.push(`${He} was a slave long before you obtained ${him}.`); + } else if (slave.career === "a slave since birth") { + r.push(`${He}'s been your slave ${his} entire life.`); + } else if (slave.career === "a meat toilet" || slave.career === "a cum dump") { + r.push(`${He} sees ${himself} as a cum receptacle.`); + } else if (slave.career === "a dairy cow") { + r.push(`${He}'s been broken into the belief that ${he} is nothing more than a cow to be milked and bred.`); + } else if (slave.career === "a breeding bull") { + r.push(`${He}'s been broken into the belief that ${he} is nothing more than a bull destined to fill fertile wombs with calves.`); + } else if (slave.career === "a breeder") { + r.push(`Before you obtained ${him}, ${he} was a breeding slave.`); + } else if (slave.career === "a bioreactor") { + r.push(`${He} has spent time as a cow in an industrial dairy, an experience that marked ${him} deeply.`); + } else { + r.push(`Before ${he} was a slave, ${he} was`); + if (App.Data.Careers.Leader.bodyguard.includes(slave.career)) { + r.push(`${career}, giving ${him} potential as a Bodyguard.`); + } else if (App.Data.Careers.Leader.wardeness.includes(slave.career)) { + r.push(`${career}, giving ${him} potential as a Wardeness for`); + if (V.cellblock === 0) { + r.push(`a Cellblock.`); + } else { + r.push(`${V.cellblockName}.`); + } + } else if (App.Data.Careers.Leader.attendant.includes(slave.career)) { + r.push(`${career}, giving ${him} potential as an Attendant for`); + if (V.spa === 0) { + r.push(`a Spa.`); + } else { + r.push(`${V.spaName}.`); + } + } else if (App.Data.Careers.Leader.matron.includes(slave.career)) { + r.push(`${career}, giving ${him} potential as a Matron for`); + if (V.nursery === 0 && V.nurseryNannies === 0) { + r.push(`a Nursery.`); + } else { + r.push(`${V.nurseryName}.`); + } + } else if (App.Data.Careers.Leader.nurse.includes(slave.career)) { + r.push(`${career}, giving ${him} potential as a Nurse for`); + if (V.clinic === 0) { + r.push(`a Clinic.`); + } else { + r.push(`${V.clinicName}.`); + } + } else if (App.Data.Careers.Leader.schoolteacher.includes(slave.career)) { + r.push(`${career}, giving ${him} potential as a Schoolteacher for`); + if (V.schoolroom === 0) { + r.push(`a Schoolroom.`); + } else { + r.push(`${V.schoolroomName}.`); + } + } else if (App.Data.Careers.Leader.stewardess.includes(slave.career)) { + r.push(`${career}, giving ${him} potential as a Stewardess for`); + if (V.servantsQuarters === 0) { + r.push(`a Servant's Quarters.`); } else { - r.push(`${career}.`); + r.push(`${V.servantsQuartersName}.`); } + } else if (App.Data.Careers.Leader.milkmaid.includes(slave.career)) { + r.push(`${career}, giving ${him} potential as a Milkmaid for`); + if (V.dairy === 0) { + r.push(`a Dairy.`); + } else { + r.push(`${V.dairyName}.`); + } + } else if (App.Data.Careers.Leader.farmer.includes(slave.career)) { + r.push(`${career}, giving ${him} potential as a Farmer for`); + if (V.farmyard === 0) { + r.push(`a Farmyard.`); + } else { + r.push(`${V.farmyardName}.`); + } + } else if (App.Data.Careers.Leader.madam.includes(slave.career)) { + r.push(`${career}, giving ${him} potential as a Madam for`); + if (V.brothel === 0) { + r.push(`a Brothel.`); + } else { + r.push(`${V.brothelName}.`); + } + } else if (App.Data.Careers.Leader.DJ.includes(slave.career)) { + r.push(`${career}, giving ${him} potential as a DJ for`); + if (V.club === 0) { + r.push(`a Club.`); + } else { + r.push(`${V.clubName}.`); + } + } else if (App.Data.Careers.Leader.HG.includes(slave.career)) { + r.push(`${career}, giving ${him} potential as a Head Girl.`); + } else if (App.Data.Careers.Leader.recruiter.includes(slave.career)) { + r.push(`${career}, giving ${him} potential as a recruiter.`); + } else if (App.Data.Careers.General.entertainment.includes(slave.career)) { + r.push(`${career}, giving ${him} a slight edge at entertainment.`); + } else if (App.Data.Careers.General.whore.includes(slave.career)) { + r.push(`${career}, giving ${him} a slight edge at sexual commerce.`); + } else if (App.Data.Careers.General.grateful.includes(slave.career)) { + r.push(`${career}, so ${he} can remember what it's like`); + if (slave.career === "prisoner") { + r.push(`no one looking out for you.`); + } else { + r.push(`to have the freedom to starve.`); + } + } else if (App.Data.Careers.General.menial.includes(slave.career)) { + r.push(`${career}, giving ${him} experience following orders.`); + } else if (App.Data.Careers.General.servant.includes(slave.career)) { + r.push(`${career}, giving ${him} a slight edge in housekeeping.`); + } else { + r.push(`${career}.`); } } if (V.week - slave.weekAcquired >= 20 && slave.skill.entertainment >= 100) { -- GitLab