diff --git a/src/npc/generate/newSlaveIntro.js b/src/npc/generate/newSlaveIntro.js index fa7f7d690024bbe44fb2dd0fdeae9c6aa83ded10..64fed0bcf30b59e02b8ce420fc465dc756a22707 100644 --- a/src/npc/generate/newSlaveIntro.js +++ b/src/npc/generate/newSlaveIntro.js @@ -858,7 +858,6 @@ App.UI.newSlaveIntro = function(slave) { } linkArray.push(span); - // TODO: append linkstrip } if (slave.breedingMark === 1) { @@ -1038,8 +1037,7 @@ App.UI.newSlaveIntro = function(slave) { }, }); choice({ - introText: `Use ${him} as ${he} is`, - linkName: ``, + linkName: `Use ${him} as ${he} is`, result: function(slave) { const r = []; r.push(`You announce that ${he}'ll have to earn ${his} surgery — if ${he} ever gets it at all. ${He} only has time for a moment of shock and betrayal before ${he} finds ${his} face jammed into the cushions of your office couch. ${He} struggles, outraged, but only manages to avoid sodomy for a moment. ${His} resistance only makes it harder on ${himself} as you take ${his} anus without mercy. By the third time you buttfuck ${him} ${he}'s learned to <span class="hotpink">relax and let it happen.</span>`); @@ -1073,8 +1071,7 @@ App.UI.newSlaveIntro = function(slave) { get requirements() { return (canDoAnal(slave)); } }); choice({ - introText: `Cruelly castrate ${him}`, - linkName: ``, + linkName: `Cruelly castrate ${him}`, result: function(slave) { const r = []; r.push(`You rise from your desk and move in close, wordlessly dominating ${him} without touch, tempting and overawing ${him} until ${he}'s desperate with desire, ${his} prick stiff as iron. ${He} follows you willingly into the autosurgery and even allows you to strap ${him} in, face-down, without comment. ${His} fuckhole welcomes your `); @@ -1139,8 +1136,7 @@ App.UI.newSlaveIntro = function(slave) { get requirements() { return (canDoAnal(slave) || canDoVaginal(slave)); } }); choice({ - introText: `Make sure ${he} knows ${he} made a mistake`, - linkName: ``, + linkName: `Make sure ${he} knows ${he} made a mistake`, result: function(slave) { const r = []; r.push(`You tell ${him} that slaves working in your penthouse are all expected to please you, and ${he} nods eagerly. ${He} strips, only starting to look doubtful again when you brusquely order ${him} to hurry up. You order ${him} to get down on the ground with ${his} face up, ${his} shoulders against the floor; ${he} does, and then you order ${him} to put ${his} legs over ${his} head. ${He} looks puzzled but does, flipping ${himself} flexibly up until ${he}'s doing a shoulder stand, bent double with ${his} crotch over ${his} face. You stand over ${him} and shove `); @@ -1867,15 +1863,13 @@ App.UI.newSlaveIntro = function(slave) { } } } - el.append(App.UI.DOM.generateLinksStrip(linkArray)); - - App.UI.DOM.appendNewElement("div", el, `Have ${him} changed...`); + lineBreak(); + App.UI.DOM.appendNewElement("div", el, `Have ${him} changed...`, "note"); if (slave.health.condition < -20) { choice({ - introText: `Address ${his} medical issues`, - linkName: ``, + linkName: `Address ${his} medical issues`, result: function(slave) { const r = []; r.push(`Since ${he}'s in rough shape, you give ${him} a comprehensive medical exam with the help of the remote surgery. You apply care to <span class="green">address</span> some of the most outstanding concerns. Whatever gratitude ${he} might have felt for prompt medical attention is balanced by fear of the remote surgery and the nagging (and accurate) feeling that ${he}'s being treated like livestock, but ${he} does <span class="mediumaquamarine">begin to hope</span> ${he}'ll be well treated.`); @@ -1890,10 +1884,11 @@ App.UI.newSlaveIntro = function(slave) { }); } + lineBreak(); + if (slave.hStyle.indexOf("shaved") === -1) { choice({ - introText: `Shave ${his} hair`, - linkName: ``, + linkName: `Shave ${his} hair`, result: function(slave) { const r = []; r.push(`You seize ${him} by the hair and drag ${him} to the auto salon. ${He} struggles and thrashes around but soon scrambles to keep up with you to relieve the pain in ${his} scalp as ${he}'s dragged. You strap ${him} in and set the auto salon to shave. ${He} `); @@ -1911,6 +1906,7 @@ App.UI.newSlaveIntro = function(slave) { }, }); } + lineBreak(); if (slave.stampTat === 0) { choice({ @@ -1969,8 +1965,7 @@ App.UI.newSlaveIntro = function(slave) { } choice({ - introText: `Brand ${him} on the ${brandTarget}`, - linkName: ``, + linkName: `Brand ${him} on the ${brandTarget}`, result: function(slave) { const r = []; r.push(`You drag ${him} to the body modification studio and strap ${him} down with ${his} brandTarget clear and defenseless. ${He} doesn't understand what's coming for a while, even as disinfectant is applied to ${his} brandTarget. ${He} can't see the approaching brand, `); @@ -1995,7 +1990,6 @@ App.UI.newSlaveIntro = function(slave) { if (slave.dick === 0 && slave.vagina > -1) { choice({ - introText: ``, linkName: `Give ${him} a smart clitoral piercing`, result: function(slave) { const r = []; @@ -2007,7 +2001,6 @@ App.UI.newSlaveIntro = function(slave) { }); } else { choice({ - introText: ``, linkName: `Give ${him} a smart frenulum piercing`, result: function(slave) { const r = []; @@ -2020,11 +2013,10 @@ App.UI.newSlaveIntro = function(slave) { }); } - + lineBreak(); if (slave.indentureRestrictions <= 0) { choice({ - introText: `Whip ${him} until ${he} scars`, - linkName: ``, + linkName: `Whip ${him} until ${he} scars`, result: function(slave) { const r = []; const hands = hasBothArms(slave) ? "arms" : "arm"; @@ -2096,8 +2088,7 @@ App.UI.newSlaveIntro = function(slave) { }, }); choice({ - introText: `Scar ${him} on the ${scarTarget}`, - linkName: ``, + linkName: `Scar ${him} on the ${scarTarget}`, result: function(slave) { const r = []; r.push(`You drag ${him} to the body modification studio and strap ${him} down with ${his} scarTarget clear and defenseless. ${He} doesn't understand what's coming for a while, even as disinfectant is applied to ${his} scarTarget. You have a wide selection of tools to create scars, the trick is to keep the wound from healing correctly afterwards. Of course, ${he} has no way of knowing that the pain you are inflicting as you cut into ${his} flesh will leave such a permanent mark, but the basic message is clear: if ${he} didn't know ${he} was a slave before, <span class="mediumorchid">${he} does now,</span> and ${he}'s got the <span class="gold">agonizing</span> <span class="red">injury</span> to prove it.`); @@ -2116,7 +2107,7 @@ App.UI.newSlaveIntro = function(slave) { }, }); } - + lineBreak(); if (V.arcologies[0].FSHedonisticDecadence >= 50 && slave.behavioralFlaw === "anorexic" && slave.weight < 10) { choice({ linkName: `Force-feed ${him}`, @@ -2130,11 +2121,10 @@ App.UI.newSlaveIntro = function(slave) { }); } - + lineBreak(); if (slave.pregKnown === 1 && V.seeExtreme === 1) { choice({ - introText: `Threaten ${his} pregnancy`, - linkName: ``, + linkName: `Threaten ${his} pregnancy`, result(slave) { const r = []; r.push(`You place an innocuous-looking drug injector on your desk, and ${him} `); @@ -2170,7 +2160,7 @@ App.UI.newSlaveIntro = function(slave) { }); } - + lineBreak(); if ((V.arcologies[0].FSRestart >= 10) && (slave.preg !== -3) && (slave.ovaries > 0) && (slave.indentureRestrictions <= 0) && (V.seeExtreme === 1)) { choice({ linkName: `Sterilize ${him}`, @@ -2245,7 +2235,7 @@ App.UI.newSlaveIntro = function(slave) { }); } - + lineBreak(); if (slave.balls > 0 && slave.vasectomy === 0 && slave.indentureRestrictions <= 1) { choice({ linkName: `Snip ${his} vas deferens`, @@ -2302,7 +2292,7 @@ App.UI.newSlaveIntro = function(slave) { }); } - + lineBreak(); if ((slave.balls > 0) && (slave.attrXY < 65) && (V.seeExtreme === 1)) { choice({ linkName: `Threaten ${his} balls`, @@ -2316,7 +2306,7 @@ App.UI.newSlaveIntro = function(slave) { }); } - + lineBreak(); if (slave.indentureRestrictions <= 0 && V.seeExtreme === 1) { if (slave.balls > 0) { choice({ @@ -2372,7 +2362,7 @@ App.UI.newSlaveIntro = function(slave) { }); } - + lineBreak(); if (hasAnyNaturalLegs(slave) && (slave.indentureRestrictions <= 0) && (V.seeExtreme === 1)) { choice({ linkName: `Clip ${his} Achilles tendons`, @@ -2392,7 +2382,7 @@ App.UI.newSlaveIntro = function(slave) { }); } - + lineBreak(); if (slave.lactation !== 2 && slave.indentureRestrictions <= 0) { choice({ linkName: `Implant ${him} with slow release lactation drugs`, @@ -2502,8 +2492,7 @@ App.UI.newSlaveIntro = function(slave) { }); } - - + lineBreak(); App.UI.DOM.appendNewElement("div", el, `...or show ${him} what it's like here for a slave`, "note"); @@ -2614,7 +2603,7 @@ App.UI.newSlaveIntro = function(slave) { }); } - + lineBreak(); if (V.seePreg !== 0) { if (isFertile(slave) && slave.womb.length === 0 && V.PC.dick !== 0 && slave.eggType === "human") { choice({ @@ -2727,7 +2716,7 @@ App.UI.newSlaveIntro = function(slave) { }); } } - + lineBreak(); if (slave.vagina === 0) { choice({ linkName: `Tie ${him} up and take ${his} virginity`, @@ -2789,7 +2778,7 @@ App.UI.newSlaveIntro = function(slave) { }); } - + lineBreak(); if (slave.devotion < -10 && slave.anus === 0) { choice({ linkName: `Tie ${him} up and rape ${his} virgin ass`, @@ -2879,7 +2868,7 @@ App.UI.newSlaveIntro = function(slave) { }); } - + lineBreak(); if (slave.fetish !== "mindbroken") { choice({ linkName: `Break ${him} in publicly`, @@ -2975,7 +2964,7 @@ App.UI.newSlaveIntro = function(slave) { }); } - + lineBreak(); if (slave.devotion > 20) { choice({ linkName: `Give ${him} a chance to impress`, @@ -3035,7 +3024,7 @@ App.UI.newSlaveIntro = function(slave) { }); } - + lineBreak(); if (slave.fetish !== "mindbroken") { if (slave.bellyPreg >= 5000) { choice({ @@ -3565,7 +3554,7 @@ App.UI.newSlaveIntro = function(slave) { } } // CLOSES MINDBROKEN CHECK - + lineBreak(); choice({ linkName: `Spank ${him}`, result(slave) { @@ -3627,7 +3616,7 @@ App.UI.newSlaveIntro = function(slave) { }, }); - + lineBreak(); if (hasAnyArms(slave)) { choice({ @@ -3651,7 +3640,7 @@ App.UI.newSlaveIntro = function(slave) { }); } - + lineBreak(); if (slave.anus !== 0) { if (slave.vagina > 0) { choice({ @@ -3746,7 +3735,7 @@ App.UI.newSlaveIntro = function(slave) { }); } } - + lineBreak(); if (canTalk(slave) && !isAmputee(slave)) { choice({ linkName: `Make ${him} an office ornament for the day`, @@ -3810,7 +3799,7 @@ App.UI.newSlaveIntro = function(slave) { }); } - + lineBreak(); if (V.cumSlaves > 3) { choice({ linkName: `Fill ${him} with cum`, @@ -3882,7 +3871,7 @@ App.UI.newSlaveIntro = function(slave) { }); } - + lineBreak(); if (hasAnyArms(slave)) { choice({ linkName: `Put a shock collar on ${him} and force ${him} to rape ${himself}`, @@ -3916,7 +3905,7 @@ App.UI.newSlaveIntro = function(slave) { }); } - + lineBreak(); if ((V.dairy > 0) && (V.dairyRestraintsSetting > 1) && (V.seeExtreme === 1)) { App.UI.DOM.appendNewElement("div", el, `...in the Industrial Dairy`, "note"); choice({ @@ -4036,7 +4025,7 @@ App.UI.newSlaveIntro = function(slave) { } } } - + lineBreak(); if (V.dairyPiping === 1) { if (((V.cumPipeline > 88 && V.cumPipeline !== 0) || V.arcologies[0].FSPastoralistLaw === 1) && slave.preg < 1 && slave.inflation === 0 && slave.bellyImplant <= 0) { choice({ @@ -4184,7 +4173,7 @@ App.UI.newSlaveIntro = function(slave) { }); } } - + lineBreak(); if (V.arcade > 0 && V.seeExtreme === 1) { App.UI.DOM.appendNewElement("div", el, "...in the Arcade", "note"); choice({ @@ -4267,6 +4256,7 @@ App.UI.newSlaveIntro = function(slave) { }); } } + lineBreak(); } IncreasePCSkills('trading', 0.1); @@ -4277,5 +4267,12 @@ App.UI.newSlaveIntro = function(slave) { } return el; + + function lineBreak() { + if (linkArray.length > 0) { + App.UI.DOM.appendNewElement("div", el, App.UI.DOM.generateLinksStrip(linkArray)); + } + linkArray = []; + } } };