diff --git a/js/002-config/fc-js-init.js b/js/002-config/fc-js-init.js index f72074b076279666181ff7becde9c40792649f31..1710cf940dfaf83d07d879f2b7744cf63bd8abc6 100644 --- a/js/002-config/fc-js-init.js +++ b/js/002-config/fc-js-init.js @@ -66,6 +66,7 @@ App.Reminders = {}; App.SF = {}; App.SecExp = {}; App.SlaveAssignment = {}; +App.StartingGirls = {}; App.UI = {}; App.UI.Budget = {}; App.UI.DOM = {}; diff --git a/src/npc/acquisition.js b/src/npc/acquisition.js index 28c6b9d60ce206b94f6c49bfecf286aec08defec..c4792eee0337526e93e0aa4e69abe55c304a30ad 100644 --- a/src/npc/acquisition.js +++ b/src/npc/acquisition.js @@ -212,8 +212,8 @@ App.StartingGirls.acquisition = function() { resetFamilyCounters(); App.UI.DOM.appendNewElement("p", el, "You've done it."); - App.UI.DOM.appendNewElement("p", el, `You arrive at your new arcology, ${V.arcologies[0].name}, and head straight to the penthouse to enter the access codes that will tell the V.arcologies[0].name systems to recognize you as their owner. The penthouse office is ready to receive the codes, and they authenticate. A voice activates in your earpiece.`); - App.UI.DOM.appendNewElement("p", el, `Congratulations. I am a personal assistant program, and it is my pleasure to assist you, ${PlayerName()} the new owner of V.arcologies[0].name. I will offer useful information whenever possible in italics. Your new arcology has some unusual equipment. The previous owner kept a small stable of sex slaves. The penthouse therefore has a body modification studio for tattooing, bleaching and piercing, and an auto salon for more prosaic things like hair care. It also has a remote surgery, a small surgical theater that can be operated remotely by a qualified surgeon if you can pay the fee. Finally, it has a slave nutrition system connected to the arcology's hydroponics bays. This system produces a tasty protein-rich drink that provides the physically active female body all its necessary nutrients while leaving the lower digestive tract extremely clean. It even causes a mild increase in sex drive.`, "note"); + App.UI.DOM.appendNewElement("p", el, `You arrive at your new arcology, ${V.arcologies[0].name}, and head straight to the penthouse to enter the access codes that will tell the ${V.arcologies[0].name} systems to recognize you as their owner. The penthouse office is ready to receive the codes, and they authenticate. A voice activates in your earpiece.`); + App.UI.DOM.appendNewElement("p", el, `Congratulations. I am a personal assistant program, and it is my pleasure to assist you, ${PlayerName()} the new owner of ${V.arcologies[0].name}. I will offer useful information whenever possible in italics. Your new arcology has some unusual equipment. The previous owner kept a small stable of sex slaves. The penthouse therefore has a body modification studio for tattooing, bleaching and piercing, and an auto salon for more prosaic things like hair care. It also has a remote surgery, a small surgical theater that can be operated remotely by a qualified surgeon if you can pay the fee. Finally, it has a slave nutrition system connected to the arcology's hydroponics bays. This system produces a tasty protein-rich drink that provides the physically active female body all its necessary nutrients while leaving the lower digestive tract extremely clean. It even causes a mild increase in sex drive.`, "note"); r = []; r.push(`The previous owner seems to have left in something of a hurry.`); @@ -411,15 +411,15 @@ App.StartingGirls.acquisition = function() { slave.trust = random(-15, 15); setHealth(slave, jsRandom(-15, 0), Math.max(normalRandInt(5, 3), 0), Math.max(normalRandInt(5, 3), 0), 0, 0); slave.faceImplant = random(40, 70); - slave.face = Math.trunc(slave.face + slave.faceImplant / 2, -100, 100); + slave.face = Math.clamp(Math.trunc(slave.face + slave.faceImplant / 2), -100, 100); slave.boobsImplant = 200 * random(4, 8); slave.boobs += slave.boobsImplant; slave.boobsImplantType = "normal"; slave.buttImplant = random(2, 4); slave.butt += slave.buttImplant; - slave.buttImplant = "normal"; + slave.buttImplantType = "normal"; slave.lipsImplant = random(1, 2); - slave.lips = Math.trunc(slave.lipsImplant + 2, -3, 3); + slave.lips = Math.clamp(Math.trunc(slave.lipsImplant + 2), -3, 3); slave.weight = random(-25, -15); slave.skill.oral = random(15, 35); slave.skill.anal = random(15, 35); @@ -989,57 +989,57 @@ App.StartingGirls.acquisition = function() { _valueGiven += _slaveCost; newSlave(slave); App.Utils.setLocalPronouns(slave); + + r.push (slave.slaveName); if (slave.fetish === "mindbroken") { - r.push(`slave.slaveName is, sadly, not mentally competent, and is wandering through the penthouse at the moment.`); + r.push(`is, sadly, not mentally competent, and is wandering through the penthouse at the moment.`); } else if (isAmputee(slave)) { - r.push(`slave.slaveName is a quadruple amputee and is quite helpless, so you can attend to ${him} at your leisure.`); + r.push(`is a quadruple amputee and is quite helpless, so you can attend to ${him} at your leisure.`); } else if (slave.devotion < -50) { - r.push(`slave.slaveName is quite rebellious and was attempting to escape, so I have locked ${him} in the slave quarters.`); + r.push(`is quite rebellious and was attempting to escape, so I have locked ${him} in the slave quarters.`); } else if (slave.devotion < -20) { - r.push(`slave.slaveName resists my orders and was considering escape, so I have locked ${him} in the slave quarters.`); + r.push(`resists my orders and was considering escape, so I have locked ${him} in the slave quarters.`); } else if (slave.devotion <= 20) { - r.push(`slave.slaveName is reasonably obedient, and is waiting for you in the dormitory, I believe in the hope of making a good impression.`); + r.push(`is reasonably obedient, and is waiting for you in the dormitory, I believe in the hope of making a good impression.`); } else if (slave.energy > 95) { - r.push(`slave.slaveName is a remarkable sexual addict, and I believe ${he} will be very happy to meet you.`); + r.push(`is a remarkable sexual addict, and I believe ${he} will be very happy to meet you.`); } else if (slave.fetish === "pregnancy") { if (slave.bellyPreg >= 500) { - r.push(`slave.slaveName is currently in the dormitory masturbating over ${his} growing pregnancy, and `); + r.push(`is currently in the dormitory masturbating over ${his} growing pregnancy, and `); if (V.PC.belly >= 5000) { - r.push(`will certainly be eager to meet you`); + r.push(`will certainly be eager to meet you.`); } else { - r.push(`I believe ${he} will be happy to show it to you`); + r.push(`I believe ${he} will be happy to show it to you.`); } - r.push(`.`); } else { - r.push(`slave.slaveName is currently in the dormitory examining ${himself} to try to discern ${his} fertility, and I believe ${he} will be `); + r.push(`is currently in the dormitory examining ${himself} to try to discern ${his} fertility, and I believe ${he} will be `); if (V.PC.belly >= 5000) { - r.push(`eager to get acquainted with you`); + r.push(`eager to get acquainted with you.`); } else { - r.push(`happy to meet you`); + r.push(`happy to meet you.`); } - r.push(`.`); } } else if (slave.belly >= 5000) { /* had to be placed after pregnancy or it would intercept*/ - r.push(`slave.slaveName is currently in the dormitory massaging ${his} greatly distended belly.`); + r.push(`is currently in the dormitory massaging ${his} greatly distended belly.`); } else if (slave.fetish === "buttslut") { - r.push(`slave.slaveName is currently in the dormitory masturbating anally, and I believe ${he} will be happy to meet you.`); + r.push(`is currently in the dormitory masturbating anally, and I believe ${he} will be happy to meet you.`); } else if (slave.fetish === "cumslut") { - r.push(`slave.slaveName is currently in the dormitory exhibiting oral fixation, and I believe ${he} will be happy to meet you.`); + r.push(`is currently in the dormitory exhibiting oral fixation, and I believe ${he} will be happy to meet you.`); } else if (slave.fetish === "boobs") { - r.push(`slave.slaveName is currently in the dormitory playing with ${his} nipples, and I believe ${he} will be happy to meet you.`); + r.push(`is currently in the dormitory playing with ${his} nipples, and I believe ${he} will be happy to meet you.`); } else if (slave.fetish === "humiliation") { - r.push(`slave.slaveName is currently in the entryway flashing passersby, and I believe ${he} will be happy to meet you.`); + r.push(`is currently in the entryway flashing passersby, and I believe ${he} will be happy to meet you.`); } else if (slave.fetish === "submissive") { - r.push(`slave.slaveName is currently in the dormitory, experimenting with self-bondage using the sheets; I believe ${he} will be happy to meet you.`); + r.push(`is currently in the dormitory, experimenting with self-bondage using the sheets; I believe ${he} will be happy to meet you.`); } else if (slave.fetish === "dom") { - r.push(`slave.slaveName is currently in the exercise area keeping fit; ${he} likes to take an active role sexually and is using this down time to work out.`); + r.push(`is currently in the exercise area keeping fit; ${he} likes to take an active role sexually and is using this down time to work out.`); } else if (slave.fetish === "sadist") { - r.push(`slave.slaveName is currently outside your office; ${he} enjoys being superior to other slaves and I believe ${he} means to ingratiate ${himself} to you.`); + r.push(`is currently outside your office; ${he} enjoys being superior to other slaves and I believe ${he} means to ingratiate ${himself} to you.`); } else if (slave.fetish === "masochist") { - r.push(`slave.slaveName is a sexual masochist; ${he} is currently in the bathroom, experimenting with auto-flagellation with a wet towel.`); + r.push(`is a sexual masochist; ${he} is currently in the bathroom, experimenting with auto-flagellation with a wet towel.`); } else { - r.push(`slave.slaveName is currently outside your office, and I believe ${he} is attempting to maintain sexual arousal to make a good first impression on you.`); + r.push(`is currently outside your office, and I believe ${he} is attempting to maintain sexual arousal to make a good first impression on you.`); } } } @@ -1082,24 +1082,27 @@ App.StartingGirls.acquisition = function() { V.enduringDevotion = V.averageDevotion; App.UI.SlaveSummary.settingsChanged(); - App.UI.DOM.link( - "Continue", - () => { - V.ui = "main"; - if (V.terrain === "urban") { - V.slaveCostFactor = 0.85; - V.menialSupplyFactor = 30000; - V.menialDemandFactor = -30000; - } else if (V.terrain === "marine") { - V.slaveCostFactor = 1; - } else { - V.slaveCostFactor = 1.15; - V.menialDemandFactor = 30000; - V.menialSupplyFactor = -30000; - } - Save.autosave.save("Week Start Autosave"); - }, - [], - "Main" + el.append( + App.UI.DOM.link( + "Continue", + () => { + V.ui = "main"; + if (V.terrain === "urban") { + V.slaveCostFactor = 0.85; + V.menialSupplyFactor = 30000; + V.menialDemandFactor = -30000; + } else if (V.terrain === "marine") { + V.slaveCostFactor = 1; + } else { + V.slaveCostFactor = 1.15; + V.menialDemandFactor = 30000; + V.menialSupplyFactor = -30000; + } + Save.autosave.save("Week Start Autosave"); + }, + [], + "Main" + ) ); + return el; }; diff --git a/src/npc/startingGirls/startingGirls.js b/src/npc/startingGirls/startingGirls.js index f9e199919486aaa966042c2c3130f788ce25d180..0a0861e8cc5c79a53fedf14dccdec4ff14dc3f9e 100644 --- a/src/npc/startingGirls/startingGirls.js +++ b/src/npc/startingGirls/startingGirls.js @@ -1,5 +1,3 @@ -App.StartingGirls = {}; - /** Generate a new slave for the starting girls passage * @returns {App.Entity.SlaveState} */