diff --git a/src/pregmod/JobFulfillmentCenter/generateJobFulfillmentSlave.js b/src/npc/generate/generateLeadershipSlave.js similarity index 62% rename from src/pregmod/JobFulfillmentCenter/generateJobFulfillmentSlave.js rename to src/npc/generate/generateLeadershipSlave.js index 3a35edd83733fd87a132425055387209e5b70cd2..981f2e8061cdc5b8a6a4d18fb16cb8cb356bff80 100644 --- a/src/pregmod/JobFulfillmentCenter/generateJobFulfillmentSlave.js +++ b/src/npc/generate/generateLeadershipSlave.js @@ -1,4 +1,4 @@ -globalThis.generateJobFulfillmentSlave = function() { +globalThis.generateLeadershipSlave = function(input, location) { const applyMaleGenitalia = function({dick, balls, prostate}) { if (V.seeDicks > 0) { slave.dick = dick; @@ -6,13 +6,50 @@ globalThis.generateJobFulfillmentSlave = function() { slave.prostate = prostate; } }; - let slave = GenerateNewSlave("XX", {minAge: 20, maxAge: 36, ageOverridesPedoMode: 1, disableDisability: 1}); - const {his} = getPronouns(slave); + const agePenaltyCheck = V.AgePenalty === 1 ? 36 : 20; - slave.trust = 80; slave.devotion = 80; + const isMotherly = V.JFC.role === 'Motherly Attendant'; + let ageMin, ageMax; + switch (input) { + case "Teacher": + case "Attendant": + case "Motherly Attendant": + case "Matron": + if (input === 'Teacher') { + ageMin = 36; + } else if (input === 'Matron') { + ageMin = 24; + } else if (input.contains('Attendant')) { + ageMin = isMotherly ? 36 : 26); + } + ageMax = V.retirementAge-3; + break; + case "Headgirl": + case "Stewardess": + case "Farmer": + case "Madam": + ageMin = agePenaltyCheck; + ageMax = V.retirementAge-5; + break; + default: + ageMin = 20; + ageMax = 36; + } + + let slave = GenerateNewSlave("XX", {minAge: ageMin, maxAge: ageMax, ageOverridesPedoMode: 1, disableDisability: 1}); + const {his} = getPronouns(slave); + slave.devotion = jsRandom(21, 85); + slave.trust = jsRandom(21, 85); slave.weight = jsRandom(-30, 20); slave.waist = jsRandom(-30, 10); + slave.intelligenceImplant = 30; + slave.intelligence = jsRandom(20, 85); + slave.hears = 0; + slave.voice = 2; slave.face = jsRandom(40, 60); + if (location === 'Job Fulfillment Center') { + slave.origin = `The ${location} offered ${his} contract to fill your request for a ${input}.`; + } if (slave.faceShape === "masculine") { slave.faceShape = "sensual"; } @@ -20,15 +57,12 @@ globalThis.generateJobFulfillmentSlave = function() { slave.boobShape = "perky"; } eyeSurgery(slave, "both", "normal"); - slave.hears = 0; - slave.voice = 2; - slave.intelligenceImplant = 30; slave.intelligence = jsRandom(20, 100); setHealth(slave, jsRandom(80, 95), 0, 0, 0, 0); - slave.origin = `The Job Fulfillment Center offered ${his} contract to fill your request for a ${V.JFC.role}.`; - switch (V.JFC.role) { + switch (input) { // Security case "Bodyguard": - slave.devotion = 90; + slave.devotion = jsRandom(51, 85); + slave.trust = jsRandom(51, 85); slave.muscles = jsRandom(30, 70); slave.height = Math.round(Height.random(slave, {skew: 3, spread: .2, limitMult: [1, 4]})); slave.weight = jsRandom(-10, 10); @@ -42,7 +76,8 @@ globalThis.generateJobFulfillmentSlave = function() { case "Wardeness": slave.energy = jsRandom(80, 100); slave.sexualFlaw = either("malicious", "none", "none", "none", "none"); - slave.fetish = "sadist"; slave.fetishStrength = 100; + slave.fetish = "sadist"; + slave.fetishStrength = 100; slave.muscles = jsRandom(50, 80); slave.skill.combat = 1; applyMaleGenitalia({dick: jsRandom(3, 6), balls: jsRandom(3, 6), prostate: either(1, 1, 1, 2, 2, 3)}); @@ -50,20 +85,20 @@ globalThis.generateJobFulfillmentSlave = function() { break; // Management case "Headgirl": - slave = GenerateNewSlave("XX", {minAge: agePenaltyCheck, maxAge: V.retirementAge-5, ageOverridesPedoMode: 1, disableDisability: 1}); - slave.intelligenceImplant = 30; slave.intelligence = jsRandom(50, 100); - slave.devotion = 90; slave.trust = 100, - slave.fetish = "dom"; slave.fetishStrength = 100; - slave.energy = jsRandom(70, 90); slave.intelligence = jsRandom(60, 100); + slave.devotion = jsRandom(51, 85); + slave.trust = jsRandom(51, 85); + slave.fetish = "dom"; + slave.fetishStrength = 100; + slave.energy = jsRandom(70, 90); Object.assign(slave.skill, {entertainment: 100, whoring: 100, anal: 100, oral: 100, vaginal: 100}); slave.vagina = jsRandom(3, 4); applyMaleGenitalia({dick: jsRandom(3, 5), balls: jsRandom(3, 6), prostate: either(1, 1, 2)}); slave.career = either(App.Data.misc.HGCareers); break; case "Teacher": - slave = GenerateNewSlave("XX", {minAge: 36, maxAge: V.retirementAge-3, ageOverridesPedoMode: 1, disableDisability: 1}); - slave.fetish = "dom"; slave.fetishStrength = 100; + slave.fetish = "dom"; + slave.fetishStrength = 100; slave.energy = jsRandom(70, 90); slave.intelligence = 100; Object.assign(slave.skill, {entertainment: 100, whoring: 100, anal: 100, oral: 100, vaginal: 100}); @@ -73,24 +108,23 @@ globalThis.generateJobFulfillmentSlave = function() { slave.career = either(App.Data.misc.schoolteacherCareers); break; case "Nurse": - slave.fetish = "dom"; slave.fetishStrength = 100; + slave.fetish = "dom"; + slave.fetishStrength = 100; slave.muscles = jsRandom(6, 50); slave.face = jsRandom(41, 90); slave.sexualQuirk = "caring"; - slave.intelligence = jsRandom(51, 100); slave.career = either(App.Data.misc.nurseCareers); break; case "Attendant": case "Motherly Attendant": - const isMotherly = V.JFC.role.includes('Motherly'); - slave = GenerateNewSlave("XX", {minAge: (isMotherly ? 36 : 26), maxAge: V.retirementAge-3, ageOverridesPedoMode: 1, disableDisability: 1}); - slave.intelligenceImplant = 30; slave.intelligence = jsRandom(20, 100); - slave.devotion = 90; slave.trust = 90; - slave.fetish = "submissive"; slave.fetishStrength = 100; + slave.fetish = "submissive"; + slave.fetishStrength = 100; slave.face = jsRandom(60, 90); if (isMotherly) { slave.counter.birthsTotal = jsRandom(1, 3); - slave.pregKnown = 1; slave.pregWeek = slave.preg = jsRandom(20, 35); slave.pregType = 1; + slave.pregKnown = 1; + slave.pregWeek = slave.preg = jsRandom(20, 35); + slave.pregType = 1; SetBellySize(slave); slave.vagina = jsRandom(3, 4); } else { @@ -100,35 +134,30 @@ globalThis.generateJobFulfillmentSlave = function() { slave.career = either(App.Data.misc.attendantCareers); break; case "Matron": - slave = GenerateNewSlave("XX", {minAge: 24, maxAge: V.retirementAge-3, ageOverridesPedoMode: 1, disableDisability: 1}); - slave.intelligenceImplant = 30; slave.intelligence = jsRandom(20, 100); - slave.devotion = 90; slave.trust = 90; slave.sexualQuirk = "caring"; - slave.counter.birthsTotal = jsRandom(2, 4); slave.vagina = 3; + slave.counter.birthsTotal = jsRandom(2, 4); + slave.vagina = 3; slave.face = jsRandom(60, 90); slave.career = either(App.Data.misc.matronCareers); break; case "Stewardess": - slave = GenerateNewSlave("XX", {minAge: agePenaltyCheck, maxAge: V.retirementAge-5, ageOverridesPedoMode: 1, disableDisability: 1}); - slave.intelligenceImplant = 30; slave.intelligence = jsRandom(20, 100); slave.energy = jsRandom(70, 90); - slave.fetish = "dom"; slave.fetishStrength = 100; + slave.fetish = "dom"; + slave.fetishStrength = 100; slave.career = either(App.Data.misc.stewardessCareers); break; case "Milkmaid": slave.muscles = jsRandom(31, 60); slave.skill.oral = jsRandom(31, 60); - slave.sexualQuirk = "caring"; slave.behavioralQuirk = "funny"; - slave.intelligence = jsRandom(20, 70); + slave.sexualQuirk = "caring"; + slave.behavioralQuirk = "funny"; applyMaleGenitalia({dick: jsRandom(3, 5), balls: jsRandom(4, 9), prostate: either(1, 1, 1, 2)}); slave.career = either(App.Data.misc.milkmaidCareers); break; case "Farmer": - slave = GenerateNewSlave("XX", {minAge: agePenaltyCheck, maxAge: V.retirementAge-5, ageOverridesPedoMode: 1, disableDisability: 1}); slave.muscles = jsRandom(41, 70); slave.sexualQuirk = "caring"; slave.weight = jsRandom(0, 30); - slave.intelligence = jsRandom(20, 70); slave.height = Math.round(Height.random(slave, {skew: 3, spread: .2, limitMult: [1, 4]})); applyMaleGenitalia({dick: jsRandom(3, 5), balls: jsRandom(4, 9), prostate: either(1, 1, 1, 2)}); slave.career = either(App.Data.misc.farmerCareers); @@ -141,14 +170,11 @@ globalThis.generateJobFulfillmentSlave = function() { slave.career = either(App.Data.misc.DJCareers); break; case "Madam": - slave = GenerateNewSlave("XX", {minAge: agePenaltyCheck, maxAge: V.retirementAge-5, ageOverridesPedoMode: 1, disableDisability: 1}); - slave.intelligenceImplant = 30; slave.intelligence = jsRandom(20, 100); slave.skill.whoring = 100; applyMaleGenitalia({dick: jsRandom(3, 5), balls: jsRandom(3, 5), prostate: either(1, 1, 1, 2)}); slave.career = either(App.Data.misc.madamCareers); break; case "Concubine": - slave.devotion = jsRandom(90, 95); slave.trust = jsRandom(90, 100); slave.prestige = 3; slave.energy = jsRandom(80, 100); Object.assign(slave.skill, {entertainment: 100, whoring: 100, anal: 100, oral: 100, vaginal: 100}); diff --git a/src/pregmod/JobFulfillmentCenter/JobFulfillmentCenterDelivery.tw b/src/pregmod/JobFulfillmentCenterDelivery.tw similarity index 94% rename from src/pregmod/JobFulfillmentCenter/JobFulfillmentCenterDelivery.tw rename to src/pregmod/JobFulfillmentCenterDelivery.tw index eacddecee66f5a63eff403507634ad033e7e271d..a9f6bb403ae326f1096610d7581635445f8b0a56 100644 --- a/src/pregmod/JobFulfillmentCenter/JobFulfillmentCenterDelivery.tw +++ b/src/pregmod/JobFulfillmentCenterDelivery.tw @@ -1,7 +1,7 @@ :: JobFulfillmentCenterDelivery [nobr] <<set $JFC.order = 0, $nextButton = "Continue", $nextLink = "Scheduled Event", $encyclopedia = "Enslaving People">> -<<set _slave = generateJobFulfillmentSlave()>> +<<set _slave = generateLeadershipSlave($JFC.role, 'Job Fulfillment Center')>> <<set _slaveCost = slaveCost(_slave) * 6>> <<setLocalPronouns _slave>> <<run App.Utils.setLocalPronouns(_slave)>>