diff --git a/src/js/ageAdjustYoungRelative.js b/src/js/ageAdjustYoungRelative.js deleted file mode 100644 index 90ec07b756932691e78aec9dcaca889e23e2f1ba..0000000000000000000000000000000000000000 --- a/src/js/ageAdjustYoungRelative.js +++ /dev/null @@ -1,101 +0,0 @@ -/* When generating a younger relative by cloning an older one (for example, for Household Liquidators), - * clamp certain physical parameters of the younger relative appropriately for their physical age. - * Generally these adjustments should match the age limiters found in generateNewSlave.js. - */ - -window.AgeAdjustYoungRelative = function(slave) { - /* breast size */ - const origBoobs = slave.boobs; - if (slave.physicalAge <= 10) { - slave.boobs = Math.clamp(slave.boobs, 0, 100); - } else if (slave.physicalAge <= 12) { - slave.boobs = Math.clamp(slave.boobs, 0, 300); - } else if (slave.physicalAge <= 14) { - slave.boobs = Math.clamp(slave.boobs, 0, 400); - } else if (slave.physicalAge <= 15) { - slave.boobs = Math.clamp(slave.boobs, 0, 450); - } - - /* if we've reduced breast size because of age, reapply minimum weight modifiers */ - if (origBoobs > slave.boobs && State.variables.weightAffectsAssets !== 0) { - if (slave.weight > 190) { - slave.boobs += 300; - } else if (slave.weight > 160) { - slave.boobs += 200; - } else if (slave.weight > 30) { - slave.boobs += 100; - } - } - - /* if we've managed to *increase* breast size, just put it back */ - if (origBoobs < slave.boobs) { - slave.boobs = origBoobs; - } - - /* breast shape - preserve if it would have been valid, otherwise reset to normal (don't reroll) */ - const AllowedBoobShapes = []; - if (slave.boobs > 250 && slave.boobs < 800) { - AllowedBoobShapes.push("perky"); - AllowedBoobShapes.push("downward-facing"); - } - if (slave.boobs > 400 && slave.boobs < 1200) { - AllowedBoobShapes.push("torpedo-shaped"); - AllowedBoobShapes.push("wide-set"); - } - if (!AllowedBoobShapes.includes(slave.boobShape)) { - slave.boobShape = "normal"; - } - - /* voice */ - if (slave.physicalAge <= 16 && slave.voice <= 1) { - slave.voice = 2; - } - - /* XX genitals */ - if (slave.physicalAge < 20 && slave.vagina > 1) { - slave.vagina = 1; - } - - if (slave.physicalAge <= 13 && slave.clit > 1) { - slave.clit = 1; - } - - if (slave.physicalAge <= 13 && slave.labia > 1) { - slave.labia = 1; - } else if (slave.physicalAge <= 15 && slave.labia > 2) { - slave.labia = 2; - } - - /* XY genitals */ - if (slave.physicalAge <= 13) { - if (slave.geneticQuirks.wellHung === 2 && slave.physicalAge >= 8 && slave.dick > 4) { - slave.dick = 4; - } else if (slave.dick > 3) { - slave.dick = 3; - } - if (slave.balls > 3) { - slave.balls = 3; - slave.scrotum = slave.balls; - } - } else if (slave.physicalAge <= 15) { - if (slave.geneticQuirks.wellHung === 2 && slave.dick > 5) { - slave.dick = 5; - } else if (slave.dick > 3) { - slave.dick = 3; - } - if (slave.balls > 4) { - slave.balls = 4; - slave.scrotum = slave.balls; - } - } - - /* teeth */ - if (slave.physicalAge < 6) { - slave.teeth = "baby"; - } else if (slave.physicalAge < 12) { - slave.teeth = "mixed"; - } - - /* reset puberty status */ - generatePuberty(slave); -}; diff --git a/src/js/generateNewSlaveJS.js b/src/js/generateNewSlaveJS.js index 1f2a39c7b37e6a537e8687224941d119b5841fe7..eca89ee589e12b92b3864f37bb2fc3857c2ebb02 100644 --- a/src/js/generateNewSlaveJS.js +++ b/src/js/generateNewSlaveJS.js @@ -40,7 +40,7 @@ window.GenerateNewSlave = (function() { } function preGenCombinedStats() { - slave.ID = V.IDNumber++; + slave.ID = generateSlaveID(); slave.weekAcquired = V.week; slave.canRecruit = 1; slave.devotion = jsRandom(-90, -60); diff --git a/src/js/generateRelatedSlave.js b/src/js/generateRelatedSlave.js new file mode 100644 index 0000000000000000000000000000000000000000..935501bce457b40d5497d27088f670efb23b9b59 --- /dev/null +++ b/src/js/generateRelatedSlave.js @@ -0,0 +1,291 @@ +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". + * @returns {SlaveState} - new relative + */ + function generateRelative(slave, relationship) { + let relative = prepareClone(slave); + if (relationship === "twin") { + makeTwin(relative); + } else if (relationship === "daughter") { + makeDaughter(relative); + } else if (relationship === "sibling") { + makeSibling(relative); + } + return relative; + } + + /** + * Clone the original slave and do some common preparations to it. + * @param {SlaveState} slave - the source relative + * @returns {SlaveState} - the new relative + */ + function prepareClone(slave) { + let relative = clone(slave); + + // match surnames + const surname = slave.slaveSurname; + const birthSurname = slave.birthSurname; + nationalityToName(relative); + relative.slaveSurname = surname; + relative.birthSurname = birthSurname; + + // regenerate accent + nationalityToAccent(relative); + + // fuzz trust/devotion + relative.devotion += random(-5, 5); + relative.oldDevotion = relative.devotion; + relative.trust += random(-5, 5); + relative.oldTrust = relative.trust; + + // fuzz attraction and energy + relative.attrXX += random(-20, 20); + relative.attrXX = Math.clamp(relative.attrXX, 0, 100); + relative.attrXY += random(-20, 20); + relative.attrXY = Math.clamp(relative.attrXX, 0, 100); + relative.energy += random(-20, 20); + + // set ID (the original slave expects this to be their ID + 1000) + relative.ID += 1000; + + return relative; + } + + /** + * Finish configuring an identical twin + * @param {SlaveState} slave - the new twin + */ + function makeTwin(slave) { + if (!V.familyTesting) { + slave.relation = "twin"; + slave.relationTarget = slave.ID - 1000; + } + } + + /** + * Finish configuring a sibling + * @param {SlaveState} slave - the new sibling + */ + function makeSibling(slave) { + if (!V.familyTesting) { + slave.relation = "sister"; + slave.relationTarget = slave.ID - 1000; + } + + // reduce age + slave.actualAge -= random(1, 5); + slave.actualAge = Math.max(slave.actualAge, V.minimumSlaveAge); + slave.visualAge = slave.actualAge; + slave.physicalAge = slave.actualAge; + slave.ovaryAge = slave.actualAge; + + // fuzz boobs/butt + if (slave.boobs > 200) { + slave.boobs += either(-100, 0, 100); + } + if (slave.butt > 1) { + slave.butt += random(-1, 1); + } + + randomiseFetishFlaws(slave); + ageFixup(slave); + } + + /** + * Finish configuring a daughter + * @param {SlaveState} slave - the new daughter + */ + function makeDaughter(slave) { + if (!V.familyTesting) { + slave.relation = "daughter"; + slave.relationTarget = slave.ID - 1000; + } + + // select age + const parentAge = slave.actualAge; + let maxAge = Math.min(22, Math.max(V.minimumSlaveAge, parentAge - 11)); + let minAge = Math.min(Math.max(8, V.minimumSlaveAge), maxAge); + if (V.pedo_mode === 1) { + minAge = V.minimumSlaveAge; + } + slave.actualAge = random(minAge, maxAge); + slave.visualAge = slave.actualAge; + slave.physicalAge = slave.actualAge; + slave.ovaryAge = slave.actualAge; + + // daughter always has less devotion/trust + slave.devotion -= 10; + slave.trust -= 10; + + // daughter always has less boobs/butt + slave.boobs -= 100; + slave.butt -= 1; + + // fuzz boobs/butt + if (slave.boobs > 200) { + slave.boobs += either(-100, 100); + } + if (slave.butt > 1) { + slave.butt += random(-1, 1); + } + + // daughter has never had children and is likely a virgin + slave.vagina = either(0, 0, 0, 1); + slave.counter.birthsTotal = 0; + + randomiseFetishFlaws(slave); + ageFixup(slave); + } + + /** + * Randomize fetish and flaws + * @param {SlaveState} slave + */ + function randomiseFetishFlaws(slave) { + slave.fetishStrength = random(0, 90); + slave.fetish = either("buttslut", "cumslut", "dom", "humiliation", "masochist", "none", "none", "none", "none", "none", "none", "pregnancy", "sadist", "submissive"); + slave.behavioralFlaw = either("anorexic", "arrogant", "bitchy", "devout", "gluttonous", "hates men", "hates women", "hates women", "liberated", "masochist", "none", "none", "none", "odd"); + if (slave.behavioralFlaw === "devout") { + slave.sexualFlaw = either("apathetic", "none", "repressed", "shamefast"); + } else { + slave.sexualFlaw = either("apathetic", "crude", "hates anal", "hates oral", "hates penetration", "idealistic", "judgemental", "none", "none", "none", "none", "repressed", "shamefast"); + } + } + + /** + * Fix age-related factors including physical immaturity, height, pregnancy, and health + * Must be after age is recomputed, obviously; should not be needed for twins + * @param {SlaveState} slave - the new relative + */ + function ageFixup(slave) { + // adjust for age + if (slave.physicalAge <= 15) { + ageAdjustYoungRelative(slave); + } + slave.height = Math.trunc(Height.random(slave)); + + // reset pregnancy + WombFlush(slave); + if (V.arcologies[0].FSRepopulationFocusSMR === 1 && canGetPregnant(slave)) { + slave.preg = random(1, 38); + slave.pregWeek = slave.preg; + slave.pregKnown = 1; + slave.pregType = setPregType(slave); + if (slave.vagina === 0) { + slave.vagina = 1; + } + } + SetBellySize(slave); + + // reset health + setHealth(slave, slave.health.condition); + } + + /** + * When generating a younger relative by cloning an older one (for example, for Household Liquidators), + * clamp certain physical parameters of the younger relative appropriately for their physical age. + * Generally these adjustments should match the age limiters found in generateNewSlave.js. + * @param {SlaveState} slave - the slave to adjust + */ + function ageAdjustYoungRelative(slave) { + /* breast size */ + const origBoobs = slave.boobs; + if (slave.physicalAge <= 10) { + slave.boobs = Math.clamp(slave.boobs, 0, 100); + } else if (slave.physicalAge <= 12) { + slave.boobs = Math.clamp(slave.boobs, 0, 300); + } else if (slave.physicalAge <= 14) { + slave.boobs = Math.clamp(slave.boobs, 0, 400); + } else if (slave.physicalAge <= 15) { + slave.boobs = Math.clamp(slave.boobs, 0, 450); + } + + /* if we've reduced breast size because of age, reapply minimum weight modifiers */ + if (origBoobs > slave.boobs && State.variables.weightAffectsAssets !== 0) { + if (slave.weight > 190) { + slave.boobs += 300; + } else if (slave.weight > 160) { + slave.boobs += 200; + } else if (slave.weight > 30) { + slave.boobs += 100; + } + } + + /* if we've managed to *increase* breast size, just put it back */ + if (origBoobs < slave.boobs) { + slave.boobs = origBoobs; + } + + /* breast shape - preserve if it would have been valid, otherwise reset to normal (don't reroll) */ + const AllowedBoobShapes = []; + if (slave.boobs > 250 && slave.boobs < 800) { + AllowedBoobShapes.push("perky"); + AllowedBoobShapes.push("downward-facing"); + } + if (slave.boobs > 400 && slave.boobs < 1200) { + AllowedBoobShapes.push("torpedo-shaped"); + AllowedBoobShapes.push("wide-set"); + } + if (!AllowedBoobShapes.includes(slave.boobShape)) { + slave.boobShape = "normal"; + } + + /* voice */ + if (slave.physicalAge <= 16 && slave.voice <= 1) { + slave.voice = 2; + } + + /* XX genitals */ + if (slave.physicalAge < 20 && slave.vagina > 1) { + slave.vagina = 1; + } + + if (slave.physicalAge <= 13 && slave.clit > 1) { + slave.clit = 1; + } + + if (slave.physicalAge <= 13 && slave.labia > 1) { + slave.labia = 1; + } else if (slave.physicalAge <= 15 && slave.labia > 2) { + slave.labia = 2; + } + + /* XY genitals */ + if (slave.physicalAge <= 13) { + if (slave.geneticQuirks.wellHung === 2 && slave.physicalAge >= 8 && slave.dick > 4) { + slave.dick = 4; + } else if (slave.dick > 3) { + slave.dick = 3; + } + if (slave.balls > 3) { + slave.balls = 3; + slave.scrotum = slave.balls; + } + } else if (slave.physicalAge <= 15) { + if (slave.geneticQuirks.wellHung === 2 && slave.dick > 5) { + slave.dick = 5; + } else if (slave.dick > 3) { + slave.dick = 3; + } + if (slave.balls > 4) { + slave.balls = 4; + slave.scrotum = slave.balls; + } + } + + /* teeth */ + if (slave.physicalAge < 6) { + slave.teeth = "baby"; + } else if (slave.physicalAge < 12) { + slave.teeth = "mixed"; + } + + /* reset puberty status */ + generatePuberty(slave); + } + + return generateRelative; +})(); diff --git a/src/js/utilsFC.js b/src/js/utilsFC.js index 4b9b4d2a68fd03fb40b0009c5b2b57170cc20f4a..cf29f65fa0c810a6646432b77e6a84843ec3162a 100644 --- a/src/js/utilsFC.js +++ b/src/js/utilsFC.js @@ -2817,3 +2817,17 @@ getBestSlaves({part:"boobs"});//defaults to top 3 getBestSlaves({part:"dick", smallest:true, filter:(slave)=>slave.dick > 0});//defaults to top 3 getBestSlaves({part:slave=>slave.intelligence+slave.intelligenceImplant}); */ + +/** + * Generates a new slave ID that is guaranteed to be unused + * @returns {number} slave ID + */ +window.generateSlaveID = function() { + // household liquidators and recETS generate slaves at an offset of 1000 (and many such slaves already exist) + // if you go through enough slaves you WILL generate collisions, so make sure we haven't just done that. + let allSlaveIDs = V.slaves.map((s) => s.ID); + while (allSlaveIDs.contains(V.IDNumber)) { + V.IDNumber++; + } + return V.IDNumber++; +}; diff --git a/src/npc/importSlave.tw b/src/npc/importSlave.tw index 888cc32df60cd3a03bafc043b81d586b3f5b7524..23bf55f3fd5ff3f250c385f9d8e846ee78344301 100644 --- a/src/npc/importSlave.tw +++ b/src/npc/importSlave.tw @@ -13,8 +13,7 @@ <<link "Apply">> <<if (def $tempSlave) && ($tempSlave !== "")>> <<set $tempSlave = eval('({' + $tempSlave + '})')>> - <<set $tempSlave.ID = $IDNumber>> - <<set $IDNumber += 1>> + <<set $tempSlave.ID = generateSlaveID()>> <<run newSlave($tempSlave)>> <<replace #import>> ''Slave imported successfully!'' diff --git a/src/npc/startingGirls/startingGirls.tw b/src/npc/startingGirls/startingGirls.tw index caa05211cfcbde850a122ea55a4bf6eb67725a2f..33c01665de5ebfc52b30c6fe7824c977993e72df 100644 --- a/src/npc/startingGirls/startingGirls.tw +++ b/src/npc/startingGirls/startingGirls.tw @@ -26,7 +26,7 @@ <<if $startingGirlCopied == 1>> <<set _tempSlave = clone($activeSlave), $activeSlave = $slaveWithoutBonuses>> - <<set $activeSlave.ID = $IDNumber++>> + <<set $activeSlave.ID = generateSlaveID()>> <<if $startingGirlRelation>> <<if $familyTesting == 1>> /* diff --git a/src/uncategorized/bulkSlaveIntro.tw b/src/uncategorized/bulkSlaveIntro.tw index f5a3b9159f67f5533afe45231c7f40b79ad310ca..a4644202af26682d40b019c1e6de1aec63f3af17 100644 --- a/src/uncategorized/bulkSlaveIntro.tw +++ b/src/uncategorized/bulkSlaveIntro.tw @@ -45,6 +45,9 @@ <</if>> You spent @@.yellowgreen;<<print cashFormat($spent)>>@@ on your new slaves.<br><br> +<<case "liquidator">> + <p>Your new pair of slaves look frightened and uncertain, but seem encouraged by each other's presence.</p> + <<case "event">> This is placeholder event info. diff --git a/src/uncategorized/householdLiquidator.tw b/src/uncategorized/householdLiquidator.tw index 16a72613898974e9d9dec37a6f84780f91b34abd..bb0a556300223ab1e1c5d863d2bcb504a347321e 100644 --- a/src/uncategorized/householdLiquidator.tw +++ b/src/uncategorized/householdLiquidator.tw @@ -1,10 +1,10 @@ :: 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 = []>> <<if random(1,100) > 50>> - <<set $oneTimeDisableDisability = 1>> <<set $activeSlave = GenerateNewSlave()>> <<set $activeSlave.origin = "You bought $him from the household liquidator.">> @@ -27,21 +27,12 @@ The household liquidator is offering a set of siblings for sale. As usual, you will only be permitted to inspect the older, but there is a guarantee that the younger will be similar. <br><br> +<<set _relativeSlave = generateRelatedSlave($activeSlave, "sibling")>> +<<run $newSlaves.push($activeSlave), $newSlaves.push(_relativeSlave)>> + <<set _slaveCost = slaveCost($activeSlave)>> <<if $slavesSeen > $slaveMarketLimit>><<set _slaveCost += Math.trunc(_slaveCost*(($slavesSeen-$slaveMarketLimit)*0.1))>><</if>> - -The price is <<print cashFormat(_slaveCost*3)>>.<<if $slavesSeen > $slaveMarketLimit>> You have cast such a wide net for slaves this week that it is becoming more expensive to find more for sale. Your reputation helps determine your reach within the slave market.<</if>> -<br><br> - -<<if $cash >= _slaveCost*3>> - [[Buy their slave contract|Siblings Workaround][cashX(forceNeg(_slaveCost*3), "slaveTransfer", $activeSlave),$nextButton = "Continue",$nextLink = "Main"]] -<<else>> - //You lack the necessary funds to buy these slaves.// -<</if>> -<br>[[Decline to purchase them and check out another set of slaves|Household Liquidator][$slavesSeen += 2]] -<br><br> - -<<set $saleDescription = 1, $applyLaw = 1>><<include "Long Slave Description">> +<<set _totalCost = _slaveCost*3>> <<elseif random(1,100) > 20>> @@ -73,24 +64,12 @@ The price is <<print cashFormat(_slaveCost*3)>>.<<if $slavesSeen > $slaveMarketL The household liquidator is offering a mother and $his daughter for sale. As usual, you will only be permitted to inspect the mother, but there is a guarantee that the daughter will be similar. <br><br> +<<set _relativeSlave = generateRelatedSlave($activeSlave, "daughter")>> +<<run $newSlaves.push($activeSlave), $newSlaves.push(_relativeSlave)>> + <<set _slaveCost = slaveCost($activeSlave)>> <<if $slavesSeen > $slaveMarketLimit>><<set _slaveCost += Math.trunc(_slaveCost*(($slavesSeen-$slaveMarketLimit)*0.1))>><</if>> - -The price is <<print cashFormat(_slaveCost*3)>>.<<if $slavesSeen > $slaveMarketLimit>> You have cast such a wide net for slaves this week that it is becoming more expensive to find more for sale. Your reputation helps determine your reach within the slave market.<</if>> -<br><br> - -<<if $cash >= _slaveCost*3>> - [[Buy their slave contract|Mother Daughter Workaround][cashX(forceNeg(_slaveCost*3), "slaveTransfer", $activeSlave),"Continue",$nextLink = "Main"]] -<<else>> - //You lack the necessary funds to buy these slaves.// -<</if>> -<br>[[Decline to purchase them and check out another set of slaves|Household Liquidator][$slavesSeen += 2]] -<br><br> - -<<set $saleDescription = 1>> -<<set $applyLaw = 1>> -<<include "Long Slave Description">> -<<set $saleDescription = 0>> +<<set _totalCost = _slaveCost*3>> <<else>> @@ -116,23 +95,25 @@ The price is <<print cashFormat(_slaveCost*3)>>.<<if $slavesSeen > $slaveMarketL The household liquidator is offering something special: identical twins. The markup is huge, but the merchandise isn't something you see every day. <br><br> +<<set _relativeSlave = generateRelatedSlave($activeSlave, "twin")>> +<<run $newSlaves.push($activeSlave), $newSlaves.push(_relativeSlave)>> + <<set _slaveCost = slaveCost($activeSlave)>> <<if $slavesSeen > $slaveMarketLimit>><<set _slaveCost += Math.trunc(_slaveCost*(($slavesSeen-$slaveMarketLimit)*0.1))>><</if>> +<<set _totalCost = _slaveCost*4>> + +<</if>> -The price is <<print cashFormat(_slaveCost*4)>>.<<if $slavesSeen > $slaveMarketLimit>> You have cast such a wide net for slaves this week that it is becoming more expensive to find more for sale. Your reputation helps determine your reach within the slave market.<</if>> +The price is <<print cashFormatColor(_totalCost)>>. <<if $slavesSeen > $slaveMarketLimit>> You have cast such a wide net for slaves this week that it is becoming more expensive to find more for sale. Your reputation helps determine your reach within the slave market.<</if>> <br><br> -<<if $cash >= _slaveCost*4>> - [[Buy their slave contract|Twins Workaround][cashX(forceNeg(_slaveCost*4), "slaveTransfer", $activeSlave),$nextButton = "Continue",$nextLink = "Main"]] +<<if $cash >= _totalCost>> + [[Buy their slave contract|Bulk Slave Intro][$newSlaves.forEach((s) => cashX(forceNeg(_totalCost/$newSlaves.length), "slaveTransfer", s))]] <<else>> //You lack the necessary funds to buy these slaves.// <</if>> <br>[[Decline to purchase them and check out another set of slaves|Household Liquidator][$slavesSeen += 2]] <br><br> -<<set $saleDescription = 1>> -<<set $applyLaw = 1>> +<<set $saleDescription = 1, $applyLaw = 1>> <<include "Long Slave Description">> -<<set $saleDescription = 0>> - -<</if>> diff --git a/src/uncategorized/motherDaughterWorkaround.tw b/src/uncategorized/motherDaughterWorkaround.tw deleted file mode 100644 index f95b694ac997c346742d73a576e4d52ad1df1b61..0000000000000000000000000000000000000000 --- a/src/uncategorized/motherDaughterWorkaround.tw +++ /dev/null @@ -1,79 +0,0 @@ -:: Mother Daughter Workaround - -Your new pair of slaves look frightened and uncertain, but seem encouraged by each other's presence. - -<<run newSlave($activeSlave)>> - -<<set _secondSlave = clone($activeSlave)>> -<<unset $activeSlave>> -<<if _secondSlave.slaveSurname>><<set _familyName = _secondSlave.slaveSurname>><</if>> -<<set _familyBirthSurname = _secondSlave.birthSurname>> -<<run nationalityToName(_secondSlave)>> -<<if _familyName>><<set _secondSlave.slaveSurname = _familyName>><</if>> -<<set _secondSlave.birthSurname = _familyBirthSurname>> -<<run nationalityToAccent(_secondSlave)>> - -<<set _secondSlave.ID = _secondSlave.ID + 1000>> -<<set _secondSlave.devotion -= random(5,15)>> -<<set _secondSlave.oldDevotion = _secondSlave.devotion>> -<<set _secondSlave.trust -= random(5,15)>> -<<set _secondSlave.oldTrust = _secondSlave.trust>> -<<set _secondSlave.boobs -= 100>> -<<set _secondSlave.butt -= 1>> -<<set _secondSlave.vagina = either(0, 0, 0, 1)>> -<<set _secondSlave.counter.birthsTotal = 0>> - -<<set $activeSlaveOneTimeMaxAge = Math.min(22, Math.max($minimumSlaveAge, _secondSlave.actualAge - 11))>> -<<set $activeSlaveOneTimeMinAge = Math.min(Math.max(8, $minimumSlaveAge), $activeSlaveOneTimeMaxAge)>> -<<if $pedo_mode == 1>><<set $activeSlaveOneTimeMinAge = $minimumSlaveAge>><</if>> -<<set _secondSlave.actualAge = random($activeSlaveOneTimeMinAge, $activeSlaveOneTimeMaxAge)>> -<<set _secondSlave.visualAge = _secondSlave.actualAge>> -<<set _secondSlave.physicalAge = _secondSlave.actualAge>> -<<set _secondSlave.ovaryAge = _secondSlave.actualAge>> - -<<set WombFlush(_secondSlave)>> -<<if (($precociousPuberty == 1 && _secondSlave.actualAge < $fertilityAge) || _secondSlave.actualAge >= $fertilityAge) && $arcologies[0].FSRepopulationFocusSMR == 1>> - <<set _secondSlave.preg = random(1,24)>> - <<set _secondSlave.pregWeek = _secondSlave.preg>> - <<set _secondSlave.pregKnown = 1>> - <<set _secondSlave.pregType = setPregType(_secondSlave)>> -<</if>> -<<run SetBellySize(_secondSlave)>> - -<<set _secondSlave.attrXX += random(-20,20)>> -<<set _secondSlave.attrXX = Math.clamp(_secondSlave.attrXX, 0, 100)>> -<<set _secondSlave.attrXY += random(-20,20)>> -<<set _secondSlave.attrXY = Math.clamp(_secondSlave.attrXY, 0, 100)>> -<<set _secondSlave.energy += random(-20,20)>> -<<set _secondSlave.fetishStrength = random(0,90)>> -<<set _secondSlave.fetish = either("buttslut", "cumslut", "dom", "humiliation", "masochist", "none", "none", "none", "none", "none", "none", "pregnancy", "sadist", "submissive")>> -<<set _secondSlave.behavioralFlaw = either("anorexic", "arrogant", "bitchy", "devout", "gluttonous", "hates men", "hates women", "hates women", "liberated", "masochist", "none", "none", "none", "odd")>> -<<if (_secondSlave.behavioralFlaw == "devout")>> - <<set _secondSlave.sexualFlaw = either("apathetic", "none", "repressed", "shamefast")>> -<<else>> - <<set _secondSlave.sexualFlaw = either("apathetic", "crude", "hates anal", "hates oral", "hates penetration", "idealistic", "judgemental", "none", "none", "none", "none", "repressed", "shamefast")>> -<</if>> - -<<if $familyTesting == 1>> - <<set _secondSlave.mother = _secondSlave.ID - 1000>> -<<else>> - <<set _secondSlave.relation = "daughter">> - <<set _secondSlave.relationTarget = _secondSlave.ID - 1000>> -<</if>> - -<<if _secondSlave.boobs > 200>> - <<set _secondSlave.boobs += random(-1, 1)*100>> -<</if>> - -<<if _secondSlave.butt > 1>> - <<set _secondSlave.butt += random(-1, 1)>> -<</if>> - -<<if _secondSlave.physicalAge <= 15>> - <<run AgeAdjustYoungRelative(_secondSlave)>> -<</if>> -<<set _secondSlave.height = Math.trunc(Height.random(_secondSlave))>> - -<<run setHealth(_secondSlave, _secondSlave.health.condition + 20)>> - -<<run newSlave(_secondSlave)>> diff --git a/src/uncategorized/siblingsWorkaround.tw b/src/uncategorized/siblingsWorkaround.tw deleted file mode 100644 index fdccb7fdefe9a5b48b01bdb8347fcf82d4dc1ca9..0000000000000000000000000000000000000000 --- a/src/uncategorized/siblingsWorkaround.tw +++ /dev/null @@ -1,77 +0,0 @@ -:: Siblings Workaround - -Your new pair of slaves look frightened and uncertain, but seem encouraged by each other's presence. - -<<run newSlave($activeSlave)>> - -<<set _secondSlave = clone($activeSlave)>> -<<unset $activeSlave>> -<<if _secondSlave.slaveSurname>><<set _familyName = _secondSlave.slaveSurname>><</if>> -<<set _familyBirthSurname = _secondSlave.birthSurname>> -<<run nationalityToName(_secondSlave)>> -<<if _familyName>><<set _secondSlave.slaveSurname = _familyName>><</if>> -<<set _secondSlave.birthSurname = _familyBirthSurname>> -<<run nationalityToAccent(_secondSlave)>> - -<<set _secondSlave.ID = _secondSlave.ID + 1000>> -<<set _secondSlave.devotion -= random(5,-5)>> -<<set _secondSlave.oldDevotion = _secondSlave.devotion>> -<<set _secondSlave.trust -= random(5,-5)>> -<<set _secondSlave.oldTrust = _secondSlave.trust>> -<<set _secondSlave.oldDevotion = _secondSlave.devotion>> -<<set _secondSlave.actualAge -= random(1,5)>> -<<set _secondSlave.visualAge = _secondSlave.actualAge>> -<<set _secondSlave.physicalAge = _secondSlave.actualAge>> -<<set _secondSlave.ovaryAge = _secondSlave.actualAge>> - -<<set WombFlush(_secondSlave)>> -<<if (($precociousPuberty == 1 && _secondSlave.actualAge < $fertilityAge) || _secondSlave.actualAge >= $fertilityAge) && $arcologies[0].FSRepopulationFocusSMR == 1>> - <<set _secondSlave.preg = random(1,38)>> - <<set _secondSlave.pregWeek = _secondSlave.preg>> - <<set _secondSlave.pregKnown = 1>> - <<set _secondSlave.pregType = setPregType(_secondSlave)>> -<</if>> -<<run SetBellySize(_secondSlave)>> - -<<set _secondSlave.attrXX += random(-20,20)>> -<<set _secondSlave.attrXX = Math.clamp(_secondSlave.attrXX, 0, 100)>> -<<set _secondSlave.attrXY += random(-20,20)>> -<<set _secondSlave.attrXY = Math.clamp(_secondSlave.attrXY, 0, 100)>> -<<set _secondSlave.energy += random(-20,20)>> -<<set _secondSlave.fetishStrength = random(0,90)>> -<<set _secondSlave.fetish = either("buttslut", "cumslut", "dom", "humiliation", "masochist", "none", "none", "none", "none", "none", "none", "pregnancy", "sadist", "submissive")>> -<<set _secondSlave.behavioralFlaw = either("anorexic", "arrogant", "bitchy", "devout", "gluttonous", "hates men", "hates women", "hates women", "liberated", "masochist", "none", "none", "none", "odd")>> -<<if (_secondSlave.behavioralFlaw == "devout")>> - <<set _secondSlave.sexualFlaw = either("apathetic", "none", "repressed", "shamefast")>> -<<else>> - <<set _secondSlave.sexualFlaw = either("apathetic", "crude", "hates anal", "hates oral", "hates penetration", "idealistic", "judgemental", "none", "none", "none", "none", "repressed", "shamefast")>> -<</if>> - -<<if $familyTesting == 0>> - <<set _secondSlave.relation = "sister">> - <<set _secondSlave.relationTarget = _secondSlave.ID - 1000>> -<</if>> - -<<if _secondSlave.actualAge < $minimumSlaveAge>> - <<set _secondSlave.actualAge = $minimumSlaveAge>> - <<set _secondSlave.visualAge = _secondSlave.actualAge>> - <<set _secondSlave.physicalAge = _secondSlave.actualAge>> - <<set _secondSlave.ovaryAge = _secondSlave.actualAge>> -<</if>> - -<<if _secondSlave.boobs > 200>> - <<set _secondSlave.boobs += random (-100, 100)>> -<</if>> - -<<if _secondSlave.butt > 1>> - <<set _secondSlave.butt += random (-1, 1)>> -<</if>> - -<<if _secondSlave.physicalAge <= 15>> - <<run AgeAdjustYoungRelative(_secondSlave)>> -<</if>> -<<set _secondSlave.height = Math.trunc(Height.random(_secondSlave))>> - -<<run setHealth(_secondSlave, _secondSlave.health.condition)>> - -<<run newSlave(_secondSlave)>> diff --git a/src/uncategorized/twinsWorkaround.tw b/src/uncategorized/twinsWorkaround.tw deleted file mode 100644 index 3bdcc64acd1b9b34ddc4336c46eddd1d2cf595aa..0000000000000000000000000000000000000000 --- a/src/uncategorized/twinsWorkaround.tw +++ /dev/null @@ -1,22 +0,0 @@ -:: Twins Workaround - -Your new pair of slaves look frightened and uncertain, but seem encouraged by each other's presence. - -<<run newSlave($activeSlave)>> - -<<set _secondSlave = clone($activeSlave)>> -<<unset $activeSlave>> -<<if _secondSlave.slaveSurname>><<set _familyName = _secondSlave.slaveSurname>><</if>> -<<set _familyBirthSurname = _secondSlave.birthSurname>> -<<run nationalityToName(_secondSlave)>> -<<if _familyName>><<set _secondSlave.slaveSurname = _familyName>><</if>> -<<set _secondSlave.birthSurname = _familyBirthSurname>> -<<run nationalityToAccent(_secondSlave)>> - -<<set _secondSlave.ID = _secondSlave.ID + 1000>> -<<if $familyTesting == 0>> - <<set _secondSlave.relation = "twin">> - <<set _secondSlave.relationTarget = _secondSlave.ID - 1000>> -<</if>> - -<<run newSlave(_secondSlave)>>