diff --git a/src/005-passages/interactPassages.js b/src/005-passages/interactPassages.js index df3b388188cb2ea6703e49f7a657638143464077..f462029f6084158d7eb11d8cc6d7630bd706b926 100644 --- a/src/005-passages/interactPassages.js +++ b/src/005-passages/interactPassages.js @@ -30,3 +30,27 @@ new App.DomPassage("Fat Grafting", return App.UI.SlaveInteract.fatGraft(getSlave(V.AS)); } ); + +new App.DomPassage( + "Slave Slave Swap Workaround", + () => { + V.nextButton = "Abort Operation"; + V.nextLink = "Main"; + return bodySwapSelection(getSlave(V.AS)); + } +); + +new App.DomPassage( + "Husk Slave Swap Workaround", + () => { + V.nextButton = "Abort Operation"; + if (V.activeSlave.tankBaby !== 3) { + V.nextLink = "Scheduled Event"; + V.returnTo = "Scheduled Event"; + } else { + V.nextLink = "Main"; + V.returnTo = "Incubator"; + } + return bodySwapSelection(getSlave(V.AS)); + } +); diff --git a/src/facilities/incubator/incubatorRetrievalWorkaround.tw b/src/facilities/incubator/incubatorRetrievalWorkaround.tw index ba3b56c0f2596d1547b6206c6e4da61a9e55bfc2..b5b886d376c5e9ca7529f534384f90917f24cb9a 100644 --- a/src/facilities/incubator/incubatorRetrievalWorkaround.tw +++ b/src/facilities/incubator/incubatorRetrievalWorkaround.tw @@ -25,14 +25,14 @@ <</if>> <<includeDOM App.UI.newChildIntro($readySlave)>> <<else>> - <<set $activeSlave = $readySlave>> /* $activeSlave is used by husk Slave Swap Workaround */ + <<set $activeSlave = $readySlave>> /* $activeSlave is used by Husk Slave Swap Workaround */ A husk is ready to be used. <br> //As expected, $he is a complete vegetable, but that is what you wanted after all. You lack the facilities to care for $him in this state, so you should do what you are planning quickly. Or you could sell $him to the Flesh Heap.// <<set _price = Math.trunc(slaveCost($readySlave)/3)>> <span id="result"> <<if $cash >= $surgeryCost>> - <br>[[Contact the bodyswap surgeon.|husk Slave Swap Workaround]] //Will significantly increase the selected slave's upkeep.// + <br>[[Contact the bodyswap surgeon.|Husk Slave Swap Workaround]] //Will significantly increase the selected slave's upkeep.// <br>[[Sell the husk to Flesh Heap.|Main][cashX(_price, "slaveTransfer")]] //This body can be bought by the Flesh Heap for <<print cashFormat(_price)>>//. <<else>> diff --git a/src/js/bodySwap/bodySwap.js b/src/js/bodySwap/bodySwap.js new file mode 100644 index 0000000000000000000000000000000000000000..6ddecdcff2200e9f4c5b2754ed3eb345745e7b97 --- /dev/null +++ b/src/js/bodySwap/bodySwap.js @@ -0,0 +1,361 @@ +/** + * + * @param {App.Entity.SlaveState} soul + * @param {App.Entity.SlaveState} body + * @param {boolean} fromGenepool is slave from the genepool? + */ +globalThis.bodySwap = function(soul, body, fromGenepool) { + WombInit(body); // Just to be sure. + soul.genes = body.genes; + soul.physicalAge = body.physicalAge; + soul.visualAge = body.visualAge; + soul.ageImplant = body.ageImplant; + soul.health = body.health; + soul.weight = body.weight; + soul.muscles = body.muscles; + soul.height = body.height; + soul.heightImplant = body.heightImplant; + soul.race = body.race; + soul.origRace = body.origRace; + soul.pubicHColor = body.pubicHColor; + soul.skin = body.skin; + soul.origSkin = body.origSkin; + soul.markings = body.markings; + soul.eye = body.eye; + soul.hears = body.hears; + soul.earImplant = body.earImplant; + soul.earShape = body.earShape; + soul.earT = body.earT; + soul.earTColor = body.earTColor; + soul.smells = body.smells; + soul.tastes = body.tastes; + soul.horn = body.horn; + soul.hornColor = body.hornColor; + soul.PTail = body.PTail; + soul.tail = body.tail; + soul.tailShape = body.tailShape; + soul.tailColor = body.tailColor; + soul.origHColor = body.origHColor; + soul.hColor = body.hColor; + soul.hLength = body.hLength; + soul.hStyle = body.hStyle; + soul.pubicHStyle = body.pubicHStyle; + soul.waist = body.waist; + soul.corsetPiercing = body.corsetPiercing; + soul.arm = body.arm; + soul.leg = body.leg; + soul.PLimb = body.PLimb; + soul.readyProsthetics = body.readyProsthetics; + soul.heels = body.heels; + soul.voice = body.voice; + soul.voiceImplant = body.voiceImplant; + soul.shoulders = body.shoulders; + soul.shouldersImplant = body.shouldersImplant; + soul.boobs = body.boobs; + soul.boobsImplant = body.boobsImplant; + soul.boobsImplantType = body.boobsImplantType; + soul.boobShape = body.boobShape; + soul.nipples = body.nipples; + soul.nipplesPiercing = body.nipplesPiercing; + soul.nipplesAccessory = body.nipplesAccessory; + soul.areolae = body.areolae; + soul.areolaePiercing = body.areolaePiercing; + soul.areolaeShape = body.areolaeShape; + soul.boobsTat = body.boobsTat; + soul.lactation = body.lactation; + soul.lactationDuration = body.lactationDuration; + soul.induceLactation = body.induceLactation; + soul.boobsMilk = body.boobsMilk; + soul.lactationAdaptation = body.lactationAdaptation; + soul.hips = body.hips; + soul.hipsImplant = body.hipsImplant; + soul.butt = body.butt; + soul.buttImplant = body.buttImplant; + soul.buttImplantType = body.buttImplantType; + soul.buttTat = body.buttTat; + soul.face = body.face; + soul.faceImplant = body.faceImplant; + soul.faceShape = body.faceShape; + soul.lips = body.lips; + soul.lipsImplant = body.lipsImplant; + soul.lipsPiercing = body.lipsPiercing; + soul.lipsTat = body.lipsTat; + soul.teeth = body.teeth; + soul.tonguePiercing = body.tonguePiercing; + soul.vagina = body.vagina; + soul.vaginaLube = body.vaginaLube; + soul.vaginaPiercing = body.vaginaPiercing; + soul.vaginaTat = body.vaginaTat; + soul.fertKnown = body.fertKnown; + soul.fertPeak = body.fertPeak; + soul.broodmother = body.broodmother; + soul.broodmotherFetuses = body.broodmotherFetuses; + soul.broodmotherOnHold = body.broodmotherOnHold; + soul.broodmotherCountDown = body.broodmotherCountDown; + soul.labia = body.labia; + soul.clit = body.clit; + soul.clitPiercing = body.clitPiercing; + soul.dick = body.dick; + soul.foreskin = body.foreskin; + soul.anus = body.anus; + soul.analArea = body.analArea; + soul.dickPiercing = body.dickPiercing; + soul.dickTat = body.dickTat; + soul.prostate = body.prostate; + soul.balls = body.balls; + soul.scrotum = body.scrotum; + soul.ovaries = body.ovaries; + soul.anusPiercing = body.anusPiercing; + soul.anusTat = body.anusTat; + soul.brand = body.brand; + soul.nosePiercing = body.nosePiercing; + soul.eyebrowPiercing = body.eyebrowPiercing; + soul.navelPiercing = body.navelPiercing; + soul.shouldersTat = body.shouldersTat; + soul.armsTat = body.armsTat; + soul.legsTat = body.legsTat; + soul.backTat = body.backTat; + soul.stampTat = body.stampTat; + soul.hormones = body.hormones; + soul.chem = body.chem; + soul.vaginalAttachment = body.vaginalAttachment; + soul.chastityVagina = body.chastityVagina; + soul.chastityPenis = body.chastityPenis; + soul.chastityAnus = body.chastityAnus; + if (soul.custom && body.custom) { + soul.custom.tattoo = body.custom.tattoo; + } + soul.bellyTat = body.bellyTat; + soul.abortionTat = body.abortionTat; + soul.birthsTat = body.birthsTat; + soul.pubertyAgeXX = body.pubertyAgeXX; + soul.pubertyXX = body.pubertyXX; + soul.pubertyAgeXY = body.pubertyAgeXY; + soul.pubertyXY = body.pubertyXY; + soul.breedingMark = body.breedingMark; + soul.underArmHColor = body.underArmHColor; + soul.underArmHStyle = body.underArmHStyle; + soul.ballType = body.ballType; + soul.eggType = body.eggType; + soul.bald = body.bald; + soul.hormoneBalance = body.hormoneBalance; + soul.breastMesh = body.breastMesh; + soul.vasectomy = body.vasectomy; + soul.haircuts = body.haircuts; + soul.ovaryAge = body.ovaryAge; + soul.readyOva = body.readyOva; + soul.womb = body.womb; // this is array assigned by reference, if slave body that is ${body} will be still used anywhere in code (not discarded) — it's WRONG (they now technically share one womb object). Please tell me about it then. But if old body body just discarded — it's no problem then. + soul.pregAdaptation = body.pregAdaptation; + soul.geneMods = body.geneMods; + soul.NCSyouthening = body.NCSyouthening; + soul.eyebrowHColor = body.eyebrowHColor; + soul.eyebrowHStyle = body.eyebrowHStyle; + soul.eyebrowFullness = body.eyebrowFullness; + soul.wombImplant = body.wombImplant; + soul.ovaImplant = body.ovaImplant; + soul.geneticQuirks = body.geneticQuirks; + soul.albinismOverride = body.albinismOverride; + soul.clone = body.clone; + soul.cloneID = body.cloneID; + soul.inbreedingCoeff = body.inbreedingCoeff; + + soul.canRecruit = 0; + + if (!fromGenepool) { // swapping NOT gene pool records + soul.counter.publicUse = body.counter.publicUse; + soul.counter.laborCount = body.counter.laborCount; + soul.porn = body.porn; + soul.aphrodisiacs = body.aphrodisiacs; + soul.curatives = body.curatives; + soul.drugs = body.drugs; + soul.prestige = body.prestige; + soul.prestigeDesc = body.prestigeDesc; + soul.minorInjury = body.minorInjury; + soul.eyewear = body.eyewear; + soul.earwear = body.earwear; + soul.earPiercing = body.earPiercing; + soul.armAccessory = body.armAccessory; + soul.legAccessory = body.legAccessory; + soul.bellyAccessory = body.bellyAccessory; + soul.preg = body.preg; + soul.pregSource = body.pregSource; + soul.pregType = body.pregType; + soul.labor = body.labor; + soul.clitSetting = body.clitSetting; + soul.diet = body.diet; + soul.dietCum = body.dietCum; + soul.dietMilk = body.dietMilk; + soul.clothes = body.clothes; + soul.collar = body.collar; + soul.faceAccessory = body.faceAccessory; + soul.mouthAccessory = body.mouthAccessory; + soul.shoes = body.shoes; + soul.makeup = body.makeup; + soul.nails = body.nails; + soul.vaginalAccessory = body.vaginalAccessory; + soul.dickAccessory = body.dickAccessory; + soul.buttplug = body.buttplug; + soul.buttplugAttachment = body.buttplugAttachment; + soul.induce = body.induce; + soul.mpreg = body.mpreg; + soul.pregKnown = body.pregKnown; + soul.pregWeek = body.pregWeek; + soul.belly = body.belly; + soul.bellyPreg = body.bellyPreg; + soul.bellyFluid = body.bellyFluid; + soul.bellyImplant = body.bellyImplant; + soul.bellySag = body.bellySag; + soul.bellySagPreg = body.bellySagPreg; + soul.bellyPain = body.bellyPain; + soul.cervixImplant = body.cervixImplant; + soul.scar = body.scar; + soul.pregControl = body.pregControl; + deflate(soul); + } +}; +/** + * + * @param {App.Entity.SlaveState} soul + * @param {App.Entity.SlaveState} body + */ +globalThis.bodySwapName = function(soul, body) { + if (body.bodySwap === 0) { + if (body.birthSurname) { + if (body.birthName !== "") { + soul.origBodyOwner = SlaveFullBirthName(body); + } else { + soul.origBodyOwner = body.slaveName + " " + body.birthSurname; + } + } else if (body.birthName) { + if (body.slaveSurname) { + if ( + (V.surnameOrder !== 1 && ["Cambodian", "Chinese", "Hungarian", "Japanese", "Korean", "Mongolian", "Taiwanese", "Vietnamese"].includes(body.nationality)) || + V.surnameOrder === 2 + ) { + soul.origBodyOwner = body.slaveSurname + " " + body.birthName; + } else { + soul.origBodyOwner = body.birthName + " " + body.slaveSurname; + } + } else { + soul.origBodyOwner = body.birthName; + } + } else if (body.slaveSurname) { + soul.origBodyOwner = SlaveFullName(body); + } else { + soul.origBodyOwner = body.slaveName; + } + } else { + soul.origBodyOwner = body.origBodyOwner; + } +}; + +/** + * + * @param {App.Entity.SlaveState} soul + * @returns {DocumentFragment} + */ +globalThis.bodySwapSelection = function(soul) { + const {him} = getPronouns(soul); + const el = new DocumentFragment(); + const cost = 10000; + App.UI.DOM.appendNewElement("div", el, `The surgeon awaits the pair of slaves to be strapped into the surgery. So far only ${soul.slaveName} is prepped:`, "scene-intro"); + App.UI.DOM.appendNewElement("div", el, `Select ${(V.seeExtreme) ? `an eligible slave (any slave who is not a fuckdoll)` : `a slave`} who will be trading bodies with ${him}. This operation will cost ${cashFormat(cost)}.`); + + for (const body of V.slaves) { + const slaveDiv = document.createElement("div"); + slaveDiv.append( + App.UI.DOM.link( + body.slaveName, + () => { + V.swappingSlave = body; + cashX(forceNeg(cost), "slaveSurgery", body); + }, + [], + "Slave Slave Swap" + ) + ); + const relTerm = relativeTerm(soul, body); + if (relTerm) { + slaveDiv.append(` ${relTerm}`); + } + if (body.relationshipTarget === soul.ID) { + const {wife} = getPronouns(body); + switch (body.relationship) { + case 1: + slaveDiv.append(` friends`); + break; + case 2: + slaveDiv.append(` best friends`); + break; + case 3: + slaveDiv.append(` friends with benefits`); + break; + case 4: + slaveDiv.append(` lover`); + break; + case 5: + slaveDiv.append(` slave${wife}`); + break; + } + } + if (body.rivalryTarget === soul.ID) { + switch (body.relationship) { + case 1: + slaveDiv.append(`dislikes`); + break; + case 2: + slaveDiv.append(`rival`); + break; + case 3: + slaveDiv.append(`bitterly hates`); + break; + } + } + el.append(slaveDiv); + } + + return el; +}; + +/** + * + * @param {App.Entity.SlaveState} body + * @returns {DocumentFragment} + */ +globalThis.huskSwapSelection = function(body) { + const el = new DocumentFragment(); + const cost = 10000; + App.UI.DOM.appendNewElement("div", el, `"This operation is neither simple nor is it perfected. There are extreme health risks involved and no guarantee of success. Strap a slave into your remote surgery to consent to the operation. Indentured servants${(V.incubator > 0) || (V.nurseryChildren) ? `and slaves with reserved children`:``} are not eligible." + `, "scene-intro"); + App.UI.DOM.appendNewElement("div", el, `Select the slave whose mind will be transferred into the waiting husk. Amputated slaves must not be wearing prosthetics. This operation will cost ${cashFormat(cost)}.`); + + for (const soul of V.slaves) { + if (isSlaveAvailable(soul)) { + if (soul.fuckdoll === 0) { + if (!hasAnyProstheticLimbs(soul)) { + if (soul.indenture === -1) { + if (soul.breedingMark === 0 || V.propOutcome === 0 || V.eugenicsFullControl === 1 || V.arcologies[0].FSRestart === "unset") { + if (WombReserveCount(soul) === 0) { + if (soul.ID !== body.ID) { + App.UI.DOM.appendNewElement("div", el, + App.UI.DOM.link( + soul.slaveName, + () => { + V.swappingSlave = soul; + cashX(forceNeg(cost), "slaveSurgery", soul); + }, + [], + "Husk Slave Swap" + ) + ); + } + } + } + } + } + } + } + } + + return el; +}; diff --git a/src/pregmod/widgets/bodySwapReaction.tw b/src/js/bodySwap/bodySwapReaction.tw similarity index 100% rename from src/pregmod/widgets/bodySwapReaction.tw rename to src/js/bodySwap/bodySwapReaction.tw diff --git a/src/pregmod/slaveSlaveSwap.tw b/src/js/bodySwap/slaveSlaveSwap.tw similarity index 84% rename from src/pregmod/slaveSlaveSwap.tw rename to src/js/bodySwap/slaveSlaveSwap.tw index 9ef4e1554ac05b70182a6b3ebeac1b2f7d65ee27..877285090c0dde7186286ae467153c850b8a9a7f 100644 --- a/src/pregmod/slaveSlaveSwap.tw +++ b/src/js/bodySwap/slaveSlaveSwap.tw @@ -11,10 +11,10 @@ <<set _gps2Clone = clone($genePool[_gps2])>> You strap <<= getSlave($AS).slaveName>> and $swappingSlave.slaveName into the remote surgery and stand back as it goes to work. -<<BodySwap $slaves[_ss1] _ss2Clone>> -<<BodySwap $genePool[_gps1] _gps2Clone 1>> /* passing a third argument just to detect if it's a slave from the genepool */ -<<BodySwap $slaves[_ss2] _ss1Clone>> -<<BodySwap $genePool[_gps2] _gps1Clone 1>> /* passing a third argument just to detect if it's a slave from the genepool */ +<<run bodySwap($slaves[_ss1], _ss2Clone)>> +<<run bodySwap($genePool[_gps1], _gps2Clone, true)>> /* passing a third argument just to detect if it's a slave from the genepool */ +<<run bodySwap($slaves[_ss2], _ss1Clone)>> +<<run bodySwap($genePool[_gps2], _gps1Clone, true)>> /* passing a third argument just to detect if it's a slave from the genepool */ <br><br> After an honestly impressive procedure, $slaves[_ss1].slaveName is recovering nicely. @@ -49,8 +49,8 @@ In the neighboring bed, $slaves[_ss2].slaveName rests peacefully. /* now to handle whose body it is, name-wise */ -<<BodySwapName $slaves[_ss1] $slaves[_ss2]>> -<<BodySwapName $slaves[_ss2] $slaves[_ss1]>> +<<run bodySwapName($slaves[_ss1], $slaves[_ss2])>> +<<run bodySwapName($slaves[_ss2], $slaves[_ss1])>> <<if _ss1Clone.bodySwap > 0>> <<if $slaves[_ss1].origBodyOwnerID == $slaves[_ss1].ID>> diff --git a/src/pregmod/huskSlaveSwap.tw b/src/pregmod/huskSlaveSwap.tw index d945e7618334678a1f51cee0f76cd75ccfdc01cf..2c3fd583c71c2a1088d8f5e470758842ae28e4f6 100644 --- a/src/pregmod/huskSlaveSwap.tw +++ b/src/pregmod/huskSlaveSwap.tw @@ -5,7 +5,7 @@ <<set _m = $slaveIndices[$swappingSlave.ID]>> You strap $slaves[_m].slaveName, and the body to which $he will be transferred, into the remote surgery and stand back as it goes to work. -<<BodySwap $slaves[_m] $activeSlave>> +<<run bodySwap($slaves[_m], $activeSlave)>> <<set _gps = $genePool.findIndex(function(s) { return s.ID == $slaves[_m].ID; })>> <<set $genePool[_gps].race = $slaves[_m].race, $genePool[_gps].origRace = $slaves[_m].origRace, $genePool[_gps].skin = $slaves[_m].skin, $genePool[_gps].markings = $slaves[_m].markings, $genePool[_gps].eye.origColor = $slaves[_m].eye.origColor, $genePool[_gps].origHColor = $slaves[_m].origHColor, $genePool[_gps].origSkin = $slaves[_m].origSkin, $genePool[_gps].face = $slaves[_m].face, $genePool[_gps].pubicHStyle = $slaves[_m].pubicHStyle, $genePool[_gps].underArmHStyle = $slaves[_m].underArmHStyle, $genePool[_gps].eyebrowHStyle = $slaves[_m].eyebrowHStyle>> /* special exception to swap genePool since the temporary body lacks an entry. Otherwise we could just call the widget using the genePool entries */ diff --git a/src/pregmod/huskSlaveSwapWorkaround.tw b/src/pregmod/huskSlaveSwapWorkaround.tw deleted file mode 100644 index 112c4ccb092363baabaf74ad3793c93874941b34..0000000000000000000000000000000000000000 --- a/src/pregmod/huskSlaveSwapWorkaround.tw +++ /dev/null @@ -1,34 +0,0 @@ -:: husk Slave Swap Workaround [nobr] - -<<if $activeSlave.tankBaby != 3>> - <<set $nextButton = "Abort Operation", $nextLink = "Scheduled Event", $returnTo = "Scheduled Event">> -<<else>> - <<set $nextButton = "Abort Operation", $nextLink = "Main", $returnTo = "Incubator">> -<</if>> - -"This operation is neither simple nor is it perfected. There are extreme health risks involved and no guarantee of success. Strap a slave into your remote surgery to consent to the operation. Indentured servants<<if ($incubator > 0) || ($nurseryChildren)>> and slaves with reserved children<</if>> are not eligible." -<br> -//Select the slave whose mind will be transferred into the waiting husk. Amputated slaves must not be wearing prosthetics. This operation will cost <<print cashFormat(10000)>>.// - -<br><br> -__Select an eligible slave:__ -<<for _i = 0; _i < $slaves.length; _i++>> - <<capture _i>> - <<if isSlaveAvailable($slaves[_i])>> - <<if $slaves[_i].fuckdoll == 0>> - <<if !hasAnyProstheticLimbs($slaves[_i])>> - <<if $slaves[_i].indenture == -1>> - <<if $slaves[_i].breedingMark == 0 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset">> - <<if WombReserveCount($slaves[_i]) == 0>> - <<if $slaves[_i].ID != $AS>> - <<set _name = SlaveFullName($slaves[_i])>> - <br>[[_name|Husk Slave Swap][$swappingSlave = $slaves[_i], cashX(-10000, "slaveSurgery", $slaves[_i])]] - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> - <</capture>> -<</for>> diff --git a/src/pregmod/seHuskSlaveDelivery.tw b/src/pregmod/seHuskSlaveDelivery.tw index 59a79704dd47a927e67d14874f6b0b11d46f4411..2d8d2c360284f90552626549d426556b457db320 100644 --- a/src/pregmod/seHuskSlaveDelivery.tw +++ b/src/pregmod/seHuskSlaveDelivery.tw @@ -73,7 +73,7 @@ A slave came in fitting the description you provided. <<if $cash >= $surgeryCost>> <<link "Accept the offered slave and contact the bodyswap surgeon.">> <<set $activeSlave = _husk>> - <<goto "husk Slave Swap Workaround">> + <<goto "Husk Slave Swap Workaround">> <</link>> //Will significantly increase the selected slave's upkeep.// <<else>> diff --git a/src/pregmod/slaveSlaveSwapWorkaround.tw b/src/pregmod/slaveSlaveSwapWorkaround.tw deleted file mode 100644 index 72ee529f98f13facdc558e6afab2ce7ee8578f93..0000000000000000000000000000000000000000 --- a/src/pregmod/slaveSlaveSwapWorkaround.tw +++ /dev/null @@ -1,22 +0,0 @@ -:: Slave Slave Swap Workaround [nobr] - -<<set $nextButton = "Abort Operation", $nextLink = "Main">> - -The surgeon awaits the pair of slaves to be strapped into the surgery. So far only <<= getSlave($AS).slaveName>> is prepped: -<br> -//Select the slave who will be trading bodies with $him. This operation will cost <<print cashFormat(10000)>>.// - -<br><br> -__Select an eligible slave:__ -<<for _i = 0; _i < $slaves.length; _i++>> - <<capture _i>> - <<if isSlaveAvailable($slaves[_i])>> - <<if $slaves[_i].fuckdoll == 0>> - <<if ($slaves[_i].ID != $AS)>> - <<set _name = SlaveFullName($slaves[_i])>> - <br>[[_name|Slave Slave Swap][$swappingSlave = $slaves[_i], cashX(-10000, "slaveSurgery", $slaves[_i])]] - <</if>> - <</if>> - <</if>> - <</capture>> -<</for>> \ No newline at end of file diff --git a/src/pregmod/widgets/bodyswapWidgets.tw b/src/pregmod/widgets/bodyswapWidgets.tw deleted file mode 100644 index bd5cd97a0e398f7caa1c0675d81c48b203c3fd86..0000000000000000000000000000000000000000 --- a/src/pregmod/widgets/bodyswapWidgets.tw +++ /dev/null @@ -1,259 +0,0 @@ -:: bodyswap widgets [nobr widget] - -/* It's too fucking big jesus christ */ - -/* first arg is slave getting swapped, second is body she is being swapped to. The second body's physical traits overwrite the originals */ -<<widget "BodySwap">> - -<<set WombInit($args[1])>> /*Just to be sure.*/ -<<set $args[0].genes = $args[1].genes>> -<<set $args[0].physicalAge = $args[1].physicalAge>> -<<set $args[0].visualAge = $args[1].visualAge>> -<<set $args[0].ageImplant = $args[1].ageImplant>> -<<set $args[0].health.condition = $args[1].health.condition>> -<<set $args[0].health.shortDamage = $args[1].health.shortDamage>> -<<set $args[0].health.longDamage = $args[1].health.longDamage>> -<<set $args[0].health.illness = $args[1].health.illness>> -<<set $args[0].health.tired = $args[1].health.tired>> -<<set $args[0].health.health = $args[1].health.health>> -<<set $args[0].weight = $args[1].weight>> -<<set $args[0].muscles = $args[1].muscles>> -<<set $args[0].height = $args[1].height>> -<<set $args[0].heightImplant = $args[1].heightImplant>> -<<set $args[0].race = $args[1].race>> -<<set $args[0].origRace = $args[1].origRace>> -<<set $args[0].pubicHColor = $args[1].pubicHColor>> -<<set $args[0].skin = $args[1].skin>> -<<set $args[0].origSkin = $args[1].origSkin>> -<<set $args[0].markings = $args[1].markings>> -<<set $args[0].eye = $args[1].eye>> -<<set $args[0].hears = $args[1].hears>> -<<set $args[0].earImplant = $args[1].earImplant>> -<<set $args[0].earShape = $args[1].earShape>> -<<set $args[0].earT = $args[1].earT>> -<<set $args[0].earTColor = $args[1].earTColor>> -<<set $args[0].smells = $args[1].smells>> -<<set $args[0].tastes = $args[1].tastes>> -<<set $args[0].horn = $args[1].horn>> -<<set $args[0].hornColor = $args[1].hornColor>> -<<set $args[0].PTail = $args[1].PTail>> -<<set $args[0].tail = $args[1].tail>> -<<set $args[0].tailShape = $args[1].tailShape>> -<<set $args[0].tailColor = $args[1].tailColor>> -<<set $args[0].origHColor = $args[1].origHColor>> -<<set $args[0].hColor = $args[1].hColor>> -<<set $args[0].hLength = $args[1].hLength>> -<<set $args[0].hStyle = $args[1].hStyle>> -<<set $args[0].pubicHStyle = $args[1].pubicHStyle>> -<<set $args[0].waist = $args[1].waist>> -<<set $args[0].corsetPiercing = $args[1].corsetPiercing>> -<<set $args[0].arm = $args[1].arm>> -<<set $args[0].leg = $args[1].leg>> -<<set $args[0].PLimb = $args[1].PLimb>> -<<set $args[0].readyProsthetics = $args[1].readyProsthetics>> -<<set $args[0].heels = $args[1].heels>> -<<set $args[0].voice = $args[1].voice>> -<<set $args[0].voiceImplant = $args[1].voiceImplant>> -<<set $args[0].shoulders = $args[1].shoulders>> -<<set $args[0].shouldersImplant = $args[1].shouldersImplant>> -<<set $args[0].boobs = $args[1].boobs>> -<<set $args[0].boobsImplant = $args[1].boobsImplant>> -<<set $args[0].boobsImplantType = $args[1].boobsImplantType>> -<<set $args[0].boobShape = $args[1].boobShape>> -<<set $args[0].nipples = $args[1].nipples>> -<<set $args[0].nipplesPiercing = $args[1].nipplesPiercing>> -<<set $args[0].nipplesAccessory = $args[1].nipplesAccessory>> -<<set $args[0].areolae = $args[1].areolae>> -<<set $args[0].areolaePiercing = $args[1].areolaePiercing>> -<<set $args[0].areolaeShape = $args[1].areolaeShape>> -<<set $args[0].boobsTat = $args[1].boobsTat>> -<<set $args[0].lactation = $args[1].lactation>> -<<set $args[0].lactationDuration = $args[1].lactationDuration>> -<<set $args[0].induceLactation = $args[1].induceLactation>> -<<set $args[0].boobsMilk = $args[1].boobsMilk>> -<<set $args[0].lactationAdaptation = $args[1].lactationAdaptation>> -<<set $args[0].hips = $args[1].hips>> -<<set $args[0].hipsImplant = $args[1].hipsImplant>> -<<set $args[0].butt = $args[1].butt>> -<<set $args[0].buttImplant = $args[1].buttImplant>> -<<set $args[0].buttImplantType = $args[1].buttImplantType>> -<<set $args[0].buttTat = $args[1].buttTat>> -<<set $args[0].face = $args[1].face>> -<<set $args[0].faceImplant = $args[1].faceImplant>> -<<set $args[0].faceShape = $args[1].faceShape>> -<<set $args[0].lips = $args[1].lips>> -<<set $args[0].lipsImplant = $args[1].lipsImplant>> -<<set $args[0].lipsPiercing = $args[1].lipsPiercing>> -<<set $args[0].lipsTat = $args[1].lipsTat>> -<<set $args[0].teeth = $args[1].teeth>> -<<set $args[0].tonguePiercing = $args[1].tonguePiercing>> -<<set $args[0].vagina = $args[1].vagina>> -<<set $args[0].vaginaLube = $args[1].vaginaLube>> -<<set $args[0].vaginaPiercing = $args[1].vaginaPiercing>> -<<set $args[0].vaginaTat = $args[1].vaginaTat>> -<<set $args[0].fertKnown = $args[1].fertKnown>> -<<set $args[0].fertPeak = $args[1].fertPeak>> -<<set $args[0].broodmother = $args[1].broodmother>> -<<set $args[0].broodmotherFetuses = $args[1].broodmotherFetuses>> -<<set $args[0].broodmotherOnHold = $args[1].broodmotherOnHold>> -<<set $args[0].broodmotherCountDown = $args[1].broodmotherCountDown>> -<<set $args[0].labia = $args[1].labia>> -<<set $args[0].clit = $args[1].clit>> -<<set $args[0].clitPiercing = $args[1].clitPiercing>> -<<set $args[0].dick = $args[1].dick>> -<<set $args[0].foreskin = $args[1].foreskin>> -<<set $args[0].anus = $args[1].anus>> -<<set $args[0].analArea = $args[1].analArea>> -<<set $args[0].dickPiercing = $args[1].dickPiercing>> -<<set $args[0].dickTat = $args[1].dickTat>> -<<set $args[0].prostate = $args[1].prostate>> -<<set $args[0].balls = $args[1].balls>> -<<set $args[0].scrotum = $args[1].scrotum>> -<<set $args[0].ovaries = $args[1].ovaries>> -<<set $args[0].anusPiercing = $args[1].anusPiercing>> -<<set $args[0].anusTat = $args[1].anusTat>> -<<set $args[0].brand = $args[1].brand>> -<<set $args[0].nosePiercing = $args[1].nosePiercing>> -<<set $args[0].eyebrowPiercing = $args[1].eyebrowPiercing>> -<<set $args[0].navelPiercing = $args[1].navelPiercing>> -<<set $args[0].shouldersTat = $args[1].shouldersTat>> -<<set $args[0].armsTat = $args[1].armsTat>> -<<set $args[0].legsTat = $args[1].legsTat>> -<<set $args[0].backTat = $args[1].backTat>> -<<set $args[0].stampTat = $args[1].stampTat>> -<<set $args[0].hormones = $args[1].hormones>> -<<set $args[0].chem = $args[1].chem>> -<<set $args[0].vaginalAttachment = $args[1].vaginalAttachment>> -<<set $args[0].chastityVagina = $args[1].chastityVagina>> -<<set $args[0].chastityPenis = $args[1].chastityPenis>> -<<set $args[0].chastityAnus = $args[1].chastityAnus>> -<<if (def $args[0].custom) && (def $args[1].custom)>> - <<set $args[0].custom.tattoo = $args[1].custom.tattoo>> -<</if>> -<<set $args[0].bellyTat = $args[1].bellyTat>> -<<set $args[0].abortionTat = $args[1].abortionTat>> -<<set $args[0].birthsTat = $args[1].birthsTat>> -<<set $args[0].pubertyAgeXX = $args[1].pubertyAgeXX>> -<<set $args[0].pubertyXX = $args[1].pubertyXX>> -<<set $args[0].pubertyAgeXY = $args[1].pubertyAgeXY>> -<<set $args[0].pubertyXY = $args[1].pubertyXY>> -<<set $args[0].breedingMark = $args[1].breedingMark>> -<<set $args[0].underArmHColor = $args[1].underArmHColor>> -<<set $args[0].underArmHStyle = $args[1].underArmHStyle>> -<<set $args[0].ballType = $args[1].ballType>> -<<set $args[0].eggType = $args[1].eggType>> -<<set $args[0].bald = $args[1].bald>> -<<set $args[0].hormoneBalance = $args[1].hormoneBalance>> -<<set $args[0].breastMesh = $args[1].breastMesh>> -<<set $args[0].vasectomy = $args[1].vasectomy>> -<<set $args[0].haircuts = $args[1].haircuts>> -<<set $args[0].ovaryAge = $args[1].ovaryAge>> -<<set $args[0].readyOva = $args[1].readyOva>> -<<set $args[0].womb = $args[1].womb>> /* this is array assigned by reference, if slave body that is $args[1] will be still used anywhere in code (not discarded) — it's WRONG (they now technically share one womb object). Please tell me about it then. But if old body $args[1] just discarded — it's no problem then.*/ -<<set $args[0].pregAdaptation = $args[1].pregAdaptation>> -<<set $args[0].geneMods = $args[1].geneMods>> -<<set $args[0].NCSyouthening = $args[1].NCSyouthening>> -<<set $args[0].eyebrowHColor = $args[1].eyebrowHColor>> -<<set $args[0].eyebrowHStyle = $args[1].eyebrowHStyle>> -<<set $args[0].eyebrowFullness = $args[1].eyebrowFullness>> -<<set $args[0].wombImplant = $args[1].wombImplant>> -<<set $args[0].ovaImplant = $args[1].ovaImplant>> -<<set $args[0].geneticQuirks = $args[1].geneticQuirks>> -<<set $args[0].albinismOverride = $args[1].albinismOverride>> -<<set $args[0].clone = $args[1].clone>> -<<set $args[0].cloneID = $args[1].cloneID>> -<<set $args[0].inbreedingCoeff = $args[1].inbreedingCoeff>> - -<<set $args[0].canRecruit = 0>> - -<<if $args[2] != 1>> /* swapping NOT gene pool records */ - <<set $args[0].counter.publicUse = $args[1].counter.publicUse>> - <<set $args[0].counter.laborCount = $args[1].counter.laborCount>> - <<set $args[0].porn = $args[1].porn>> - <<set $args[0].aphrodisiacs = $args[1].aphrodisiacs>> - <<set $args[0].curatives = $args[1].curatives>> - <<set $args[0].drugs = $args[1].drugs>> - <<set $args[0].prestige = $args[1].prestige>> - <<set $args[0].porn.viewerCount = $args[1].porn.viewerCount>> - <<set $args[0].porn.prestige = $args[1].porn.prestige>> - <<set $args[0].porn.prestigeDesc = $args[1].porn.prestigeDesc>> - <<set $args[0].prestigeDesc = $args[1].prestigeDesc>> - <<set $args[0].minorInjury = $args[1].minorInjury>> - <<set $args[0].eyewear = $args[1].eyewear>> - <<set $args[0].earwear = $args[1].earwear>> - <<set $args[0].earsPiercing = $args[1].earsPiercing>> - <<set $args[0].armAccessory = $args[1].armAccessory>> - <<set $args[0].legAccessory = $args[1].legAccessory>> - <<set $args[0].bellyAccessory = $args[1].bellyAccessory>> - <<set $args[0].preg = $args[1].preg>> - <<set $args[0].pregSource = $args[1].pregSource>> - <<set $args[0].pregType = $args[1].pregType>> - <<set $args[0].labor = $args[1].labor>> - <<set $args[0].clitSetting = $args[1].clitSetting>> - <<set $args[0].diet = $args[1].diet>> - <<set $args[0].dietCum = $args[1].dietCum>> - <<set $args[0].dietMilk = $args[1].dietMilk>> - <<set $args[0].clothes = $args[1].clothes>> - <<set $args[0].collar = $args[1].collar>> - <<set $args[0].faceAccessory = $args[1].faceAccessory>> - <<set $args[0].mouthAccessory = $args[1].mouthAccessory>> - <<set $args[0].shoes = $args[1].shoes>> - <<set $args[0].makeup = $args[1].makeup>> - <<set $args[0].nails = $args[1].nails>> - <<set $args[0].vaginalAccessory = $args[1].vaginalAccessory>> - <<set $args[0].dickAccessory = $args[1].dickAccessory>> - <<set $args[0].buttplug = $args[1].buttplug>> - <<set $args[0].buttplugAttachment = $args[1].buttplugAttachment>> - <<set $args[0].induce = $args[1].induce>> - <<set $args[0].mpreg = $args[1].mpreg>> - <<set $args[0].pregKnown = $args[1].pregKnown>> - <<set $args[0].pregWeek = $args[1].pregWeek>> - <<set $args[0].belly = $args[1].belly>> - <<set $args[0].bellyPreg = $args[1].bellyPreg>> - <<set $args[0].bellyFluid = $args[1].bellyFluid>> - <<set $args[0].bellyImplant = $args[1].bellyImplant>> - <<set $args[0].bellySag = $args[1].bellySag>> - <<set $args[0].bellySagPreg = $args[1].bellySagPreg>> - <<set $args[0].bellyPain = $args[1].bellyPain>> - <<set $args[0].cervixImplant = $args[1].cervixImplant>> - <<set $args[0].scar = $args[1].scar>> - <<set $args[0].pregControl = $args[1].pregControl>> - <<run deflate($args[0])>> -<</if>> -/* -<<if def $args[2]>> - <<= assignJob($args[0], "rest")>> -<</if>> -*/ - -<</widget>> - -<<widget "BodySwapName">> - -<<if $args[1].bodySwap == 0>> - <<if $args[1].birthSurname>> - <<if $args[1].birthName !== "">> - <<set $args[0].origBodyOwner = SlaveFullBirthName($args[1])>> - <<else>> - <<set $args[0].origBodyOwner = $args[1].slaveName + " " + $args[1].birthSurname>> - <</if>> - <<elseif $args[1].birthName>> - <<if $args[1].slaveSurname>> - <<if (($surnameOrder != 1 && ["Cambodian", "Chinese", "Hungarian", "Japanese", "Korean", "Mongolian", "Taiwanese", "Vietnamese"].includes($args[1].nationality)) || ($surnameOrder == 2)>> - <<set $args[0].origBodyOwner = $args[1].slaveSurname + " " + $args[1].birthName>> - <<else>> - <<set $args[0].origBodyOwner = $args[1].birthName + " " + $args[1].slaveSurname>> - <</if>> - <<else>> - <<set $args[0].origBodyOwner = $args[1].birthName>> - <</if>> - <<elseif $args[1].slaveSurname>> - <<set $args[0].origBodyOwner = SlaveFullName($args[1])>> - <<else>> - <<set $args[0].origBodyOwner = $args[1].slaveName>> - <</if>> -<<else>> - <<set $args[0].origBodyOwner = $args[1].origBodyOwner>> -<</if>> - -<</widget>>