From 75d641e26f0582d16028a49dd4e6fc05dfd3fac6 Mon Sep 17 00:00:00 2001 From: Svornost <11434-svornost@users.noreply.gitgud.io> Date: Sat, 8 Feb 2020 11:39:07 -0800 Subject: [PATCH] Rework Egyptian Revivalist Acquisition event 1. Add a mechanism to generateRelatedSlave to produce an opposite-sex relative instead of a same-sex one (rather more thorough than what the ERA event was doing...fixes sex-linked genetic quirks and so on). 2. Make the ERA event use generateRelatedSlave. 3. Hook it up to Bulk Slave Intro. 4. Slightly alters the Bulk Slave Intro boilerplate used in both HL and the ERA event to avoid polluting $newSlaves if the purchase is declined. 5. Delete the ERA workaround passage. --- src/js/generateRelatedSlave.js | 147 +++++++++++++++++- src/uncategorized/bulkSlaveIntro.tw | 3 + src/uncategorized/householdLiquidator.tw | 10 +- src/uncategorized/nextWeek.tw | 2 +- .../reFSEgyptianRevivalistAcquisition.tw | 48 ++++-- ...EgyptianRevivalistAcquisitionWorkaround.tw | 103 ------------ 6 files changed, 189 insertions(+), 124 deletions(-) delete mode 100644 src/uncategorized/reFSEgyptianRevivalistAcquisitionWorkaround.tw diff --git a/src/js/generateRelatedSlave.js b/src/js/generateRelatedSlave.js index 935501bce45..eedb05c3ed7 100644 --- a/src/js/generateRelatedSlave.js +++ b/src/js/generateRelatedSlave.js @@ -3,9 +3,10 @@ window.generateRelatedSlave = (function() { * Generate a very similar relative for an existing slave (for use in Household Liquidators, for example). * @param {SlaveState} slave - the source relative * @param {string} relationship - the relationship that the new relative has with the source. Currently supports "daughter", "sibling", "twin". + * @param {bool} oppositeSex - set to true if the new relative should be the opposite sex of the old one (otherwise it will be the same sex). * @returns {SlaveState} - new relative */ - function generateRelative(slave, relationship) { + function generateRelative(slave, relationship, oppositeSex=false) { let relative = prepareClone(slave); if (relationship === "twin") { makeTwin(relative); @@ -14,6 +15,18 @@ window.generateRelatedSlave = (function() { } else if (relationship === "sibling") { makeSibling(relative); } + if (oppositeSex) { + if (slave.genes === "XX") { + changeSexToXY(relative); + } else if (slave.genes === "XY") { + changeSexToXX(relative); + } else { + // we'll assume futa are their own opposites and don't need tweaking + } + } + if (relative.actualAge < slave.actualAge || oppositeSex) { // not used for same-sex twins + ageFixup(relative); + } return relative; } @@ -76,11 +89,12 @@ window.generateRelatedSlave = (function() { } // reduce age - slave.actualAge -= random(1, 5); + slave.actualAge -= random(2, 6); slave.actualAge = Math.max(slave.actualAge, V.minimumSlaveAge); slave.visualAge = slave.actualAge; slave.physicalAge = slave.actualAge; slave.ovaryAge = slave.actualAge; + slave.birthWeek = random(0, 51); // fuzz boobs/butt if (slave.boobs > 200) { @@ -91,7 +105,6 @@ window.generateRelatedSlave = (function() { } randomiseFetishFlaws(slave); - ageFixup(slave); } /** @@ -115,6 +128,7 @@ window.generateRelatedSlave = (function() { slave.visualAge = slave.actualAge; slave.physicalAge = slave.actualAge; slave.ovaryAge = slave.actualAge; + slave.birthWeek = random(0, 51); // daughter always has less devotion/trust slave.devotion -= 10; @@ -137,7 +151,6 @@ window.generateRelatedSlave = (function() { slave.counter.birthsTotal = 0; randomiseFetishFlaws(slave); - ageFixup(slave); } /** @@ -287,5 +300,131 @@ window.generateRelatedSlave = (function() { generatePuberty(slave); } + /** + * Give a slave a realistic chance to activate a sexlinked genetic quirk which her opposite-sex relative was only a carrier for. + * @param {SlaveState} slave - the slave to adjust + * @param {string} quirk - the sex-linked quirk to test + */ + function activateSexlinkedGeneticQuirk(slave, quirk) { + if (slave.geneticQuirks[quirk] === 1) { + if (random(1, 4) > 3) { + slave.geneticQuirks[quirk] = 2; + } + } + } + + /** + * Make a slave a carrier for a genetic sexlinked quirk which her opposite-sex relative had active. + * @param {SlaveState} slave - the slave to adjust + * @param {string} quirk - the sex-linked quirk to test + */ + function deactivateSexlinkedGeneticQuirk(slave, quirk) { + if (slave.geneticQuirks[quirk] === 2) { + slave.geneticQuirks[quirk] = 1; + } + } + + /** + * Changes the new relative's sex from XY to XX. + * @param {SlaveState} slave - the slave to adjust + */ + function changeSexToXX(slave) { + slave.genes = "XX"; + + // activate/deactivate sexlinked genetic quirks + ["wellHung"].forEach((q) => deactivateSexlinkedGeneticQuirk(slave, q)); + ["fertility", "hyperFertility", "macromastia", "gigantomastia"].forEach((q) => activateSexlinkedGeneticQuirk(slave, q)); + + // alter body proportions + slave.hips = Math.clamp(slave.hips + 1, -2, 2); + slave.butt++; + slave.waist = Math.clamp(slave.waist - random(15, 25), -100, 100); + slave.face = Math.clamp(slave.face - random(15, 25), -100, 100); + slave.boobs = either(200, 300, 400, 500); + + // alter genitals + slave.dick = 0; + slave.balls = 0; + slave.scrotum = 0; + slave.prostate = 0; + slave.vagina = 1; // no virgins here? + slave.clit = either(0, 0, 0, 0, 0, 0, 1, 1, 2); + slave.labia = either(0, 0, 0, 1, 1, 1, 1, 2, 2, 3); + slave.ovaries = 1; + slave.preg = -1; // might get pregnant from repop check later on anyway + + // swap attraction + [slave.attrXX, slave.attrXY] = [slave.attrXY, slave.attrXX]; + + // adjust voice and hair + slave.voice = Math.min(3, slave.voice + 1); + slave.hLength = 60; + + // rotate hormone balance around a center of 10 (60 becomes -40 and vice versa) + slave.hormoneBalance -= (slave.hormoneBalance - 10) * 2; + + // regenerate piercings (would be nice to just call generateXXMods here) + slave.earPiercing = jsEither([0, 1]); + slave.nosePiercing = jsEither([0, 0, 0, 1]); + slave.eyebrowPiercing = jsEither([0, 0, 0, 0, 0, 1]); + slave.clitPiercing = jsEither([0, 0, 0, 0, 0, 1]); + slave.lipsPiercing = jsEither([0, 0, 0, 0, 0, 1]); + slave.navelPiercing = jsEither([0, 0, 0, 1]); + slave.nipplesPiercing = jsEither([0, 0, 0, 0, 1]); + } + + /** + * Changes the new relative's sex from XX to XY. + * @param {SlaveState} slave - the slave to adjust + */ + function changeSexToXY(slave) { + slave.genes = "XY"; + + // activate/deactivate sexlinked genetic quirks + ["wellHung"].forEach((q) => activateSexlinkedGeneticQuirk(slave, q)); + ["fertility", "hyperFertility", "macromastia", "gigantomastia"].forEach((q) => deactivateSexlinkedGeneticQuirk(slave, q)); + + // alter body proportions + slave.hips = Math.clamp(slave.hips - 1, -2, 2); + slave.butt = Math.max(0, slave.butt - 1); + slave.waist = Math.clamp(slave.waist + random(15, 25), -100, 100); + slave.face = Math.clamp(slave.face + random(15, 25), -100, 100); + slave.boobs = 0; + + // alter genitals + slave.vagina = -1; + slave.clit = 0; + slave.labia = 0; + slave.ovaries = 0; + slave.preg = -2; + if (slave.geneticQuirks.wellHung === 2) { + slave.dick = either(5, 5, 6); + } else { + slave.dick = either(1, 2, 2, 2, 3, 3, 3, 4, 4, 5); + } + slave.balls = either(1, 2, 2, 2, 3, 3, 3, 4, 4, 5); + slave.scrotum = slave.balls; + slave.prostate = 1; + + // swap attraction + [slave.attrXX, slave.attrXY] = [slave.attrXY, slave.attrXX]; + + // adjust voice and hair + slave.voice = Math.max(1, slave.voice - 1); + slave.hLength = 10; + + // rotate hormone balance around a center of 10 (60 becomes -40 and vice versa) + slave.hormoneBalance -= (slave.hormoneBalance - 10) * 2; + + // regenerate piercings (would be nice to just call generateXYMods here) + slave.earPiercing = jsEither([0, 0, 0, 1]); + slave.nosePiercing = jsEither([0, 0, 0, 0, 1]); + slave.eyebrowPiercing = jsEither([0, 0, 0, 0, 0, 1]); + slave.clitPiercing = jsEither([0, 0, 0, 0, 0, 1]); + slave.lipsPiercing = jsEither([0, 0, 0, 0, 0, 1]); + slave.navelPiercing = jsEither([0, 0, 0, 0, 1]); + slave.nipplesPiercing = jsEither([0, 0, 0, 0, 1]); + } + return generateRelative; })(); diff --git a/src/uncategorized/bulkSlaveIntro.tw b/src/uncategorized/bulkSlaveIntro.tw index a4644202af2..5b1554c8578 100644 --- a/src/uncategorized/bulkSlaveIntro.tw +++ b/src/uncategorized/bulkSlaveIntro.tw @@ -48,6 +48,9 @@ <<case "liquidator">> <p>Your new pair of slaves look frightened and uncertain, but seem encouraged by each other's presence.</p> +<<case "egyptian">> + <p>They arrive hand-in-hand and don't let go of each other until the end of the enslavement process, and even after they break their grip and undress at your instruction, their eyes never stray far from each other. With a closer look at them, their blood relation is as obvious as their infatuation with one another. No wonder they couldn't keep it a secret.</p> + <<case "event">> This is placeholder event info. diff --git a/src/uncategorized/householdLiquidator.tw b/src/uncategorized/householdLiquidator.tw index bb0a5563002..9a64f6dacd7 100644 --- a/src/uncategorized/householdLiquidator.tw +++ b/src/uncategorized/householdLiquidator.tw @@ -1,7 +1,7 @@ :: Household Liquidator [nobr] <<set $nextButton = "Back", $nextLink = "Buy Slaves", $returnTo = "Buy Slaves", $showEncyclopedia = 1, $encyclopedia = "Household Liquidations">> -<<set $introType = "liquidator", $newSlavesDone = 0, $newSlaveIndex = 0, $newSlaves = []>> +<<set $introType = "liquidator", $newSlavesDone = 0, $newSlaveIndex = 0, _newSlaves = []>> <<if random(1,100) > 50>> @@ -28,7 +28,7 @@ The household liquidator is offering a set of siblings for sale. As usual, you w <br><br> <<set _relativeSlave = generateRelatedSlave($activeSlave, "sibling")>> -<<run $newSlaves.push($activeSlave), $newSlaves.push(_relativeSlave)>> +<<run _newSlaves.push($activeSlave), _newSlaves.push(_relativeSlave)>> <<set _slaveCost = slaveCost($activeSlave)>> <<if $slavesSeen > $slaveMarketLimit>><<set _slaveCost += Math.trunc(_slaveCost*(($slavesSeen-$slaveMarketLimit)*0.1))>><</if>> @@ -65,7 +65,7 @@ The household liquidator is offering a mother and $his daughter for sale. As usu <br><br> <<set _relativeSlave = generateRelatedSlave($activeSlave, "daughter")>> -<<run $newSlaves.push($activeSlave), $newSlaves.push(_relativeSlave)>> +<<run _newSlaves.push($activeSlave), _newSlaves.push(_relativeSlave)>> <<set _slaveCost = slaveCost($activeSlave)>> <<if $slavesSeen > $slaveMarketLimit>><<set _slaveCost += Math.trunc(_slaveCost*(($slavesSeen-$slaveMarketLimit)*0.1))>><</if>> @@ -96,7 +96,7 @@ The household liquidator is offering something special: identical twins. The mar <br><br> <<set _relativeSlave = generateRelatedSlave($activeSlave, "twin")>> -<<run $newSlaves.push($activeSlave), $newSlaves.push(_relativeSlave)>> +<<run _newSlaves.push($activeSlave), _newSlaves.push(_relativeSlave)>> <<set _slaveCost = slaveCost($activeSlave)>> <<if $slavesSeen > $slaveMarketLimit>><<set _slaveCost += Math.trunc(_slaveCost*(($slavesSeen-$slaveMarketLimit)*0.1))>><</if>> @@ -108,7 +108,7 @@ The price is <<print cashFormatColor(_totalCost)>>. <<if $slavesSeen > $slaveMar <br><br> <<if $cash >= _totalCost>> - [[Buy their slave contract|Bulk Slave Intro][$newSlaves.forEach((s) => cashX(forceNeg(_totalCost/$newSlaves.length), "slaveTransfer", s))]] + [[Buy their slave contract|Bulk Slave Intro][$newSlaves = _newSlaves, $newSlaves.forEach((s) => cashX(forceNeg(_totalCost/$newSlaves.length), "slaveTransfer", s))]] <<else>> //You lack the necessary funds to buy these slaves.// <</if>> diff --git a/src/uncategorized/nextWeek.tw b/src/uncategorized/nextWeek.tw index 361063197d1..dbf164ad604 100644 --- a/src/uncategorized/nextWeek.tw +++ b/src/uncategorized/nextWeek.tw @@ -348,7 +348,7 @@ <<set $activeSlave = 0, $eventSlave = 0, $slaveWithoutBonuses = 0, $subSlave = 0, $milkTap = 0, $relation = 0, $relative = 0, $relative2 = 0>> /% Slave Objects that never get zeroed so null them here. Second most memory eaten up. %/ -<<set $beforeGingering = null, $sibling = null>> +<<set $beforeGingering = null>> /% Strings Memory varies. %/ <<set $analSkinDesc = "", $applyDesc = "", $bellyAccessory = "", $buyer = "", $desc = "", $event = "", $goto = "", $malefactor = "", $nickname = "", $notApplyDesc = "", $oldName = "", $oldSurname = "", $situationDesc = "", $skinDesc = "", $k = "">> diff --git a/src/uncategorized/reFSEgyptianRevivalistAcquisition.tw b/src/uncategorized/reFSEgyptianRevivalistAcquisition.tw index 5069b96b6b3..fab74d4d740 100644 --- a/src/uncategorized/reFSEgyptianRevivalistAcquisition.tw +++ b/src/uncategorized/reFSEgyptianRevivalistAcquisition.tw @@ -1,13 +1,11 @@ :: RE FSEgyptianRevivalist acquisition [nobr] /* Written and coded by Boney M */ +<<set $nextButton = "Continue", $nextLink = "RIE Eligibility Check", $returnTo = "RIE Eligibility Check">> +<<set $showEncyclopedia = 1, $encyclopedia = "Enslaving People">> +<<set $introType = "egyptian", $newSlavesDone = 0, $newSlaveIndex = 0, _newSlaves = []>> -<<set $nextButton = "Continue">> -<<set $nextLink = "RIE Eligibility Check">> -<<set $returnTo = "RIE Eligibility Check">> -<<set $showEncyclopedia = 1>><<set $encyclopedia = "Enslaving People">> - -<<set $contractCost = 3000>> +<<set _contractCost = 3000>> <<set $oneTimeDisableDisability = 1>> <<set $activeSlave = GenerateNewSlave()>> <<set $activeSlave.origin = "$He offered $himself to you for enslavement hoping you would preserve $his incestuous relationship with $his sibling.">> @@ -19,7 +17,6 @@ <<set $activeSlave.ovaryAge = $activeSlave.actualAge>> <<run setHealth($activeSlave, jsRandom(-20, 0))>> <<set _slaveCost = slaveCost($activeSlave)>> -<<set _slaveCost -= 3000>> <<if $familyTesting == 1>> <<set $activeSlave.mother = $missingParentID>> <<set $missingParentID-->> @@ -30,9 +27,38 @@ <<set $activeSlave.relation = "sister">> <<set $activeSlave.relationTarget = $activeSlave.ID + 1000>> <</if>> +<<if ($activeSlave.dick > 0) && ($activeSlave.balls == 0)>><<set $activeSlave.balls = random(1,5)>><</if>> <<set $activeSlave.relationship = 4>> <<set $activeSlave.relationshipTarget = $activeSlave.ID + 1000>> -<<if ($activeSlave.dick > 0) && ($activeSlave.balls == 0)>><<set $activeSlave.balls = random(1,5)>><</if>> + +<<set _oppositeSex = $seeDicks > 0 && $seeDicks < 100 && (random(1, 4) <= 3)>> +<<set _secondSlave = generateRelatedSlave($activeSlave, "sibling", _oppositeSex)>> +<<set _secondSlave.relationship = 4>> +<<set _secondSlave.relationshipTarget = $activeSlave.ID>> + +<<if (_secondSlave.actualAge <= 22)>> + <<set _secondSlave.career = setup.youngCareers.random()>> +<<elseif (_secondSlave.intelligenceImplant >= 15)>> + <<set _secondSlave.career = setup.educatedCareers.random()>> +<<else>> + <<set _secondSlave.career = setup.uneducatedCareers.random()>> +<</if>> + +/* they've been fucking, obviously, so no virginity */ +<<if (_secondSlave.dick > 0)>> + <<if $activeSlave.vagina == 0>> + <<set $activeSlave.vagina = 1>> + <</if>> + <<set $activeSlave.anus = Math.max($activeSlave.anus, 1)>> +<</if>> +<<if ($activeSlave.dick > 0)>> + <<if _secondSlave.vagina == 0>> + <<set _secondSlave.vagina = 1>> + <</if>> + <<set _secondSlave.anus = Math.max(_secondSlave.anus, 1)>> +<</if>> + +<<run _newSlaves.push($activeSlave), _newSlaves.push(_secondSlave)>> <<setAssistantPronouns>> @@ -40,13 +66,13 @@ You receive so many messages, as a noted titan of the new Free Cities world, tha <br><br> This call is coming from a public kiosk, which is usually an indication that the person on the other end is a transient individual who has decided to take slavery over homelessness. In this case, however, the story is more unusual — the callers seem stressed, but otherwise normal. They haltingly and quietly explain, with many nervous glances off-camera to ensure they are not overheard, that they are both siblings and lovers, and their attempts to keep the truth of the nature of their relationship from their friends, family, and society at large have failed. They had heard of $arcologies[0].name's reverence for incestuous relationships, and have managed to talk themselves into the questionable conclusion that their only chance to be together was for them to sell themselves to someone who would not just accept but encourage their incest — namely, you. <br><br> -//Enslaving them will cost <<print cashFormat($contractCost)>>. Selling them immediately will bring in approximately <<print cashFormat(_slaveCost*2)>>.// +//Enslaving them will cost <<print cashFormat(_contractCost)>>. Selling them immediately will bring in approximately <<print cashFormat(_slaveCost*2-3000)>>.// <br><br> <<include "Long Slave Description">> <br><br> <span id="result"> -<<if $cash >= $contractCost>> - [[Enslave the pair|RE FSEgyptianRevivalist acquisition workaround][$sibling = $activeSlave]]/*Billing will happen past the link based on $contractCost*/ +<<if $cash >= _contractCost>> + [[Enslave the pair|Bulk Slave Intro][$newSlaves = _newSlaves, $newSlaves.forEach((s) => cashX(forceNeg(_totalCost/$newSlaves.length), "slaveTransfer", s))]] <<else>> //You lack the necessary funds to enslave them.// <</if>> diff --git a/src/uncategorized/reFSEgyptianRevivalistAcquisitionWorkaround.tw b/src/uncategorized/reFSEgyptianRevivalistAcquisitionWorkaround.tw deleted file mode 100644 index bd925d076f8..00000000000 --- a/src/uncategorized/reFSEgyptianRevivalistAcquisitionWorkaround.tw +++ /dev/null @@ -1,103 +0,0 @@ -:: RE FSEgyptianRevivalist acquisition workaround - -/* Written and coded by Boney M */ -They arrive hand-in-hand and don't let go of each other until the end of the enslavement process, and even after they break their grip and undress at your instruction, their eyes never stray far from each other. With a closer look at them, their blood relation is as obvious as their infatuation with one another. No wonder they couldn't keep it a secret. - -<<run newSlave($sibling)>> -<<run cashX(($contractCost/2), "slaveTransfer", $sibling)>> - -<<set _secondSlave = clone($activeSlave)>> - -<<run nationalityToName(_secondSlave)>> -<<if $activeSlave.slaveSurname>><<set _secondSlave.slaveSurname = $activeSlave.slaveSurname>><</if>> -<<set _secondSlave.birthSurname = $activeSlave.birthSurname>> - -<<set _secondSlave.ID = $activeSlave.ID + 1000>> -<<set _secondSlave.devotion += random (-1, 1)>> -<<set _secondSlave.trust += random (-1, 1)>> -<<set _secondSlave.oldDevotion = $activeSlave.devotion>> -<<set _secondSlave.actualAge -= random (2,5)>> -<<set _secondSlave.visualAge = _secondSlave.actualAge>> -<<set _secondSlave.physicalAge = _secondSlave.actualAge>> -<<set _secondSlave.ovaryAge = _secondSlave.actualAge>> -<<set _secondSlave.birthWeek = random(0,51)>> -<<if $familyTesting == 0>> - <<set _secondSlave.relation = "sister">> - <<set _secondSlave.relationTarget = $activeSlave.ID>> -<</if>> -<<set _secondSlave.relationship = 4>> -<<set _secondSlave.relationshipTarget = $activeSlave.ID>> - - -<<set _secondSlave.hStyle = either("ass-length", "long", "shaved bald", "short", "shoulder-length", "very short")>> -<<if (_secondSlave.actualAge <= 22)>> - <<set _secondSlave.career = setup.youngCareers.random()>> -<<elseif (_secondSlave.intelligenceImplant >= 15)>> - <<set _secondSlave.career = setup.educatedCareers.random()>> -<<else>> - <<set _secondSlave.career = setup.uneducatedCareers.random()>> -<</if>> - -<<if (random(1,4) > 1) && (random(1,99) < $seeDicks)>> - -<<if ($activeSlave.dick > 0) && ($activeSlave.vagina < 0)>> - <<set _secondSlave.dick = 0>> - <<set _secondSlave.foreskin = 0>> - <<set _secondSlave.scrotum = 0>> - <<set _secondSlave.balls = 0>> - <<set _secondSlave.vagina = 1>> - <<set _secondSlave.clit = either(0, 0, 0, 0, 0, 0, 1, 1, 2)>> - <<set _secondSlave.labia = either(0, 0, 0, 1, 1, 1, 1, 2, 2, 3)>> - <<set _secondSlave.preg = -1>> - <<set _secondSlave.ovaries = 1>> - <<set _secondSlave.face = Math.trunc(_secondSlave.face+20,-100,100)>> - <<set _secondSlave.boobs += either(0, 100, 200, 300, 400)>> - <<set _secondSlave.butt += either(0, 1, 1, 2)>> - <<set _secondSlave.earPiercing = either(0,1)>> - <<set _secondSlave.nosePiercing = either(0,0,0,1)>> - <<set _secondSlave.eyebrowPiercing = either(0,0,0,0,0,1)>> - <<set _secondSlave.clitPiercing = either(0,0,0,0,0,1)>> - <<set _secondSlave.lipsPiercing = either(0,0,0,0,0,1)>> - <<set _secondSlave.navelPiercing = either(0,0,0,1)>> - <<set _secondSlave.nipplesPiercing = either(0,0,0,1)>> -<<elseif ($activeSlave.dick == 0) && ($activeSlave.vagina >= 0)>> - <<set _secondSlave.dick = either(1, 2, 2, 2, 3, 3, 3, 4, 4, 5)>> - <<set _secondSlave.balls = either(1, 2, 2, 2, 3, 3, 3, 4, 4, 5)>> - <<set $activeSlave.vagina = 1>> - <<set _secondSlave.vagina = -1>> - <<set _secondSlave.clit = 0>> - <<set _secondSlave.labia = 0>> - <<set _secondSlave.preg = -2>> - <<set _secondSlave.ovaries = 0>> - - <<set _secondSlave.face = Math.trunc(_secondSlave.face-20,-100,100)>> - <<set _secondSlave.boobs -= either(0, 100, 200, 300, 400)>> - <<set _secondSlave.butt -= either(0, 1, 1, 2)>> - - <<set _secondSlave.earPiercing = either(0,0,0,1)>> - <<set _secondSlave.nosePiercing = either(0,0,0,0,1)>> - <<set _secondSlave.eyebrowPiercing = either(0,0,0,0,0,1)>> - <<set _secondSlave.dickPiercing = either(0,0,0,0,0,1)>> - <<set _secondSlave.lipsPiercing = either(0,0,0,0,0,1)>> - <<set _secondSlave.navelPiercing = either(0,0,0,0,1)>> - <<set _secondSlave.nipplesPiercing = either(0,0,0,0,1)>> -<<elseif $activeSlave.dick > 0>> - <<if random(1, 3) == 1>> - <<set _secondSlave.anus = 1>> - <<else>> - <<set $activeSlave.anus = 1>> - <</if>> -<</if>> - -<<if _secondSlave.vagina == 0>> - <<set _secondSlave.vagina = 1>> -<</if>> -<<if (_secondSlave.dick > 0) && (_secondSlave.balls == 0)>> - <<set _secondSlave.balls = random(1,5)>> -<</if>> - -<</if>> - -<<run newSlave(_secondSlave)>> -<<run cashX(($contractCost/2), "slaveTransfer", _secondSlave)>> -<<run delete $contractCost>> -- GitLab