diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt index bb33da511897c4c9e1c9d4919b9d4d4c476595a4..58409da91dc1ac671cff4fc452bab1c8d416e0e9 100644 --- a/slave variables documentation - Pregmod.txt +++ b/slave variables documentation - Pregmod.txt @@ -1257,7 +1257,7 @@ broodmotherOnHold If broodmother implant set to pause it's work. 1 - implant on pause != 1 - working. -If broodmother birth her last baby and implant on pause - it's will be passed out. +If broodmother birth her last baby and her implant is on pause, she will be in contraception like state. broodmotherCountDown: diff --git a/src/js/SFJS.tw b/src/js/SFJS.tw index e7146c2272c394d7b9a92e0471f959dcd18f40ba..d016e96b98ec6fb448bb8e1061c6bcde578d654a 100644 --- a/src/js/SFJS.tw +++ b/src/js/SFJS.tw @@ -1,9 +1,9 @@ :: SFJS [script] window.simpleWorldEconomyCheck = function() { - var n1 = 7; - var n2 = 5; - var n3 = 3; + var n1 = 4; + var n2 = 3; + var n3 = 2; if(State.variables.economy === .5) { return n1; } else if(State.variables.economy === 1.5) { diff --git a/src/js/storyJS.tw b/src/js/storyJS.tw index b18a5bdd102c6113692f6dc4899142d1f3df969e..bac88df0e53003ecf645b88ed61c7b1db2086e96 100644 --- a/src/js/storyJS.tw +++ b/src/js/storyJS.tw @@ -293,7 +293,7 @@ window.canImpreg = function(slave1, slave2) { window.isFertile = function(slave) { if (!slave) { return null; - } else if (slave.preg > 0) { /* currently pregnant */ + } else if (slave.womb.length > 0 || slave.broodmother > 0) { /* currently pregnant or broodmother */ return false; } else if (slave.preg < -1) { /* sterile */ return false; diff --git a/src/js/wombJS.tw b/src/js/wombJS.tw index 7e357a751537aa4ed88f2ffe99c235731850bed3..fca33e0d73fa4e0116bca8ad377529204d83be0b 100644 --- a/src/js/wombJS.tw +++ b/src/js/wombJS.tw @@ -47,7 +47,7 @@ window.WombInit = function(actor) //Init womb system. { WombImpregnate(actor, actor.pregType, actor.pregSource, actor.preg); } - else if (actor.womb.length == 0 && actor.pregType != 0 && actor.broodmother > 0) //sorry but for already present broodmothers it's impossible to calculate fully, aproximation used. + else if (actor.womb.length == 0 && actor.pregType != 0 && actor.broodmother > 0 && actor.broodmotherOnHold < 1) //sorry but for already present broodmothers it's impossible to calculate fully, aproximation used. { var i, pw = actor.preg, bCount, bLeft; if (pw > 40) @@ -249,6 +249,23 @@ window.WombNormalizePreg = function(actor) { // console.log("New actor: " + actor.slaveName + " ===============" + actor.name); WombInit(actor); + + if (actor.womb.length == 0 && actor.broodmother >= 1) // this is broodmother on hold. + { + actor.pregType = 0; + actor.pregKnown = 0; + + if (actor.preg > 0) + actor.preg = 0.1; //to avoid legacy code conflicts - broodmother on hold can't be impregnated, but she not on normal contraceptives. So we set this for special case. + + if (actor.pregSource > 0) + actor.pregSource = 0; + + if (actor.pregWeek > 0) + actor.pregWeek = 0; + + actor.broodmotherCountDown = 0; + } if (actor.womb.length > 0) { @@ -272,7 +289,7 @@ window.WombNormalizePreg = function(actor) actor.pregType = actor.womb.length; actor.pregSource = actor.womb[0].fatherID; } - else if (actor.womb.length == 0 && actor.broodmother < 1) + else if (actor.womb.length == 0 && actor.broodmother < 1) //not broodmother { // console.log("preg fixing"); actor.pregType = 0; diff --git a/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw b/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw index 7261a8d5049ef7d5e2340d3c4260467f09700eaa..7db07e497d988c1b4150da1793f4511f5fede1da 100644 --- a/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw +++ b/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw @@ -312,7 +312,7 @@ <<case 7>> Modernized the electronics, wiring and circuitry. Boosted the advanced comms jammer's power by 50% (now can destroy affected equipment). <<case 8>> - Modernized the electronics, wiring and circuitry. Boosted the advanced comms jammer's power by 50% (now can destroy affected equipment). The Satellite is now equipped with a basic EMP generator (advanced EMP hardening was applied before the insulation and activation) will "slightly" anger locals until it is deactivated. + Modernized the electronics, wiring and circuitry. Boosted the advanced comms jammer's power by 50% (now can destroy affected equipment). The Satellite is now equipped with a basic EMP generator (advanced EMP hardening was applied before the insulation and activation) that will "slightly" anger locals until it is deactivated. <<case 9>> Modernized the electronics, wiring and circuitry. Boosted the advanced comms jammer's power by 50% (now can destroy affected equipment). The Satellite is now equipped with an advanced EMP generator by, increasing the AO localization which reduces the quantity of affected equipment. <<case 10>> diff --git a/src/pregmod/widgets/seBirthWidgets.tw b/src/pregmod/widgets/seBirthWidgets.tw index 7a38d7737b56aa5c9e3275242243c35a0a9b5a08..50667d2bc8bfc8af17347e58e83c74e60ed9906d 100644 --- a/src/pregmod/widgets/seBirthWidgets.tw +++ b/src/pregmod/widgets/seBirthWidgets.tw @@ -939,21 +939,11 @@ All in all, <<if $slaves[$i].broodmother > 0 >> <<set $slaves[$i].preg = WombMaxPreg($slaves[$i])>> - <<if $slaves[$i].broodmotherOnHold != 1 && $slaves[$i].womb.length == 0>> /* normally if broodmother is empty and not on hold then implant impregnate her immdiately*/ - <<set WombImpregnate($slaves[$i], 1, $slaves[$i].pregSource, 1)>> - <</if>> <<if $slaves[$i].broodmotherCountDown > 0 && $slaves[$i].womb.length > 0>> /*do we really finished?*/ <<set $slaves[$i].broodmotherCountDown = 38 - WombMinPreg($slaves[$i]) >> /*age of most new (small) fetus used to correct guessing of remained time.*/ - /*Really, next block can be changed so implant will can remain inside womb turned off indefinitely. With manual extraction in surgery. But for now I leave it as is.*/ - <<if $slaves[$i].broodmotherCountDown == 0>> - $pronounCap also passed the implant making $object a broodmother alongside the afterbirth. - <<set $slaves[$i].preg = 0>> - <<set $slaves[$i].pregType = 0>> - <<set $slaves[$i].pregSource = 0>> - <<set $slaves[$i].pregKnown = 0>> - <<set $slaves[$i].pregWeek = -4>> - <<set $slaves[$i].broodmother = 0>> - <</if>> + <<set $slaves[$i].preg = 0.1>> + <<set $slaves[$i].pregType = 0>> + <<set $slaves[$i].pregSource = 0>> <</if>> <<elseif $slaves[$i].womb.length > 0>>/* Not broodmother, but still has babies, partial birth case.*/ <<set $slaves[$i].preg = WombMaxPreg($slaves[$i])>> /*now we use most advanced remained fetus as base.*/ diff --git a/src/uncategorized/SFMBarracks.tw b/src/uncategorized/SFMBarracks.tw index 0baeb4091774f17b32b45bf994bf9afba8f64c19..4fdaf78ec3c64263282f646805879aee9343045f 100644 --- a/src/uncategorized/SFMBarracks.tw +++ b/src/uncategorized/SFMBarracks.tw @@ -76,12 +76,12 @@ <<set $CashGift = 25000*(Math.max(0.99,$SFAO/10))*$Env>> <<if random(1,100) > 50>> <<if random(1,100) > 50>> - _Name nods. "Sure boss," she says, "we had a bit of a haul this week. One of my sergeants convinced a woman to tell us where she had hidden her shit. Cut her up pretty bad, but she told us. Bunch of nice jewelry, I kept a nice piece for myself." She picks up a tablet on the table, tapping a few commands on it. "@@.green;There's your cut,@@ <<print cashFormat($CashGift)>>." + _Name nods. "Sure boss," she says, "we had a bit of a haul this week. One of my sergeants convinced a woman to tell us where she had hidden her shit. Cut her up pretty bad, but she told us. Bunch of nice jewelry, I kept a nice piece for myself." She picks up a tablet on the table, tapping a few commands on it. "@@.yellowgreen;There's your cut,@@ <<print cashFormat($CashGift)>>." <<else>> - _Name smiles widely. "Sure boss," she says, "we pulled in some good shit this week. One of the boys found a real nice family hiding in a basement. 18-year old triplets. Brought in a good bit of cash." She picks up a tablet on the table, tapping a few commands on it. "@@.green;There's your cut,@@ <<print cashFormat($CashGift)>>." + _Name smiles widely. "Sure boss," she says, "we pulled in some good shit this week. One of the boys found a real nice family hiding in a basement. 18-year old triplets. Brought in a good bit of cash." She picks up a tablet on the table, tapping a few commands on it. "@@.yellowgreen;There's your cut,@@ <<print cashFormat($CashGift)>>." <</if>> <<else>> - _Name picks up a tablet. "Sure boss," she says, "we had a nice score this week. Looters fucked up and left a bunch of nice shit behind." She taps a few commands on the tablet. "@@.green;There's your cut,@@ <<print cashFormat($CashGift)>>." + _Name picks up a tablet. "Sure boss," she says, "we had a nice score this week. Looters fucked up and left a bunch of nice shit behind." She taps a few commands on the tablet. "@@.yellowgreen;There's your cut,@@ <<print cashFormat($CashGift)>>." <</if>> <<set $securityForceGiftToken = 1>> <<set $cash += $CashGift>> diff --git a/src/uncategorized/autosurgerySettings.tw b/src/uncategorized/autosurgerySettings.tw index a2b1d6ab0b43792c53d6c42c6beb427b678fc2f3..937ebbaf1ffcd360e8b49881e500a009611ac028 100644 --- a/src/uncategorized/autosurgerySettings.tw +++ b/src/uncategorized/autosurgerySettings.tw @@ -240,6 +240,14 @@ Lip implants: </span> <br><br> +<<if $bellyImplants >= 1>> + Belly/Uterus implant: ''<span id = "bimpl">no default setting</span>.'' + <br> + <<rbutton "$currentRule.surgery.bellyImplant" "no default setting" "bimpl" "don't do anything">> No changes | + <<rbutton "$currentRule.surgery.bellyImplant" "install" "bimpl" "if possible install implant">> Install | + <<rbutton "$currentRule.surgery.bellyImplant" "remove" "bimpl" "remove installed implant">> Remove + <br><br> +<</if>> Buttock implants: <span id = "butt"> diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw index 2d298d219bfc23bd37cf325a063b61960f489ca6..838db590d7c98f798eb61d15f55dd1091889ef07 100644 --- a/src/uncategorized/remoteSurgery.tw +++ b/src/uncategorized/remoteSurgery.tw @@ -506,6 +506,8 @@ waist. $pronounCap's <<if $activeSlave.pregKnown > 0>> pregnant. +<<elseif $activeSlave.womb.length == 0 && $activeSlave.broodmother > 0>> + broodmother on hold. <<elseif $activeSlave.preg > 0>> showing unusual discomfort as $possessive stomach is inspected. A quick test reveals that @@.lime;$pronoun is pregnant.@@ <<set $activeSlave.pregKnown = 1>> @@ -532,7 +534,7 @@ $pronounCap's //$possessiveCap indenture forbids elective surgery// <<elseif $activeSlave.breedingMark == 1>> //You are forbidden from affecting $possessive fertility// -<<elseif $activeSlave.preg > 0 || $activeSlave.inflation > 0>> +<<elseif $activeSlave.preg > 0 || $activeSlave.inflation > 0 || $activeSlave.broodmother > 0>> //$pronounCap is unable to support an abdominal implant at this time// <<elseif $activeSlave.bellyImplant >= 750000>> //$possessiveCap abdominal implant is so far beyond its maximum limit it is at risk of rupturing// @@ -759,6 +761,16 @@ Work on her sex: <</if>> <</if>> +<<if $permaPregImplant == 1>> + <<if $activeSlave.broodmother >= 1 >> + <<if $activeSlave.womb.length == 0 >> + [[Remove a pregnancy generator|Surgery Degradation][$activeSlave.preg = 0,$activeSlave.pregWeek = 0,$activeSlave.pregKnown = 0,$activeSlave.pregType = 0,$activeSlave.broodmother = 0,$activeSlave.broodmotherFetuses = 0,$activeSlave.broodmotherOnHold = 0,$cash -= $surgeryCost,$activeSlave.pregControl = "none",$activeSlave.health -= 10,$surgeryType = "pregRemove"]] + <<else>> + She is pregnant right now, and her broodmother implant can't be safely extracted. + <</if>> + <</if>> +<</if>> + <<if $activeSlave.mpreg == 1>> <<if $activeSlave.preg > 0>> <br> diff --git a/src/uncategorized/rulesAssistant.tw b/src/uncategorized/rulesAssistant.tw index 0f959eeb97f2ff51115fabcdf89bf6606ce7f1d9..44c4d2f19f324af9c5eb859e5f08048d26f76ca5 100644 --- a/src/uncategorized/rulesAssistant.tw +++ b/src/uncategorized/rulesAssistant.tw @@ -1030,6 +1030,24 @@ Buttplugs for other slaves: <span id="buaccessory">''$currentRule.buttplug.''</s <</if>> <</for>> +<<if $bellyImplants >= 1>> + <br> + Belly implant target volume (if present): ''<span id = "bimpl">no default setting</span>.'' + <br> + <<rbutton "$currentRule.bellyImplantVol" "-1" "bimpl" "no changes">> No changes | + <<rbutton "$currentRule.bellyImplantVol" "0" "bimpl" "empty implant">> Empty | + <<rbutton "$currentRule.bellyImplantVol" "1500" "bimpl" "early pregnancy">> Small | + <<rbutton "$currentRule.bellyImplantVol" "5000" "bimpl" "second trimester pregnancy">> Mid-pregnancy | + <<rbutton "$currentRule.bellyImplantVol" "15000" "bimpl" "full-term pregnancy">> Full-term | + <<rbutton "$currentRule.bellyImplantVol" "30000" "bimpl" "full-term with twins pregnancy">> Twins | + <<rbutton "$currentRule.bellyImplantVol" "45000" "bimpl" "full-term with triplets pregnancy">> Triplets | + <<rbutton "$currentRule.bellyImplantVol" "60000" "bimpl" "full-term with quadruplets pregnancy">> Quads | + <<rbutton "$currentRule.bellyImplantVol" "75000" "bimpl" "full-term with quintuplets pregnancy">> Quints | + <<rbutton "$currentRule.bellyImplantVol" "90000" "bimpl" "full-term with sextuplets pregnancy">> Sextuplets | + <<rbutton "$currentRule.bellyImplantVol" "105000" "bimpl" "full-term with septuplets pregnancy">> Septuplets | + <<rbutton "$currentRule.bellyImplantVol" "120000" "bimpl" "full-term with octuplets pregnancy">> Octomom +<</if>> + <br><br> Body modification: [[Cosmetic Rules Assistant Settings][$artificialEyeColor = "",$artificialEyeShape = ""]] | [[Body Mod Rules Assistant Settings]] | [[Autosurgery Settings]] @@ -2464,7 +2482,7 @@ Relationship rules: <span id="relation">''$currentRule.relationshipRules.''</spa <<link "Add a new rule">> - <<set _tempRule = {aphrodisiacs: "no default setting", condition: {id: "false"}, releaseRules: "no default setting", clitSetting: "no default setting", clitSettingXY: "no default setting", clitSettingXX: "no default setting", clitSettingEnergy: "no default setting", speechRules: "no default setting", clothes: "no default setting", collar: "no default setting", shoes: "no default setting", virginAccessory: "no default setting", aVirginAccessory: "no default setting", vaginalAccessory: "no default setting", aVirginDickAccessory: "no default setting", dickAccessory: "no default setting", bellyAccessory: "no default setting", aVirginButtplug: "no default setting", buttplug: "no default setting", eyeColor: "no default setting", makeup: "no default setting", nails: "no default setting", hColor: "no default setting", hLength: "no default setting", hStyle: "no default setting", pubicHColor: "no default setting", pubicHStyle: "no default setting", nipplesPiercing: "no default setting", areolaePiercing: "no default setting", clitPiercing: "no default setting", vaginaLube: "no default setting", vaginaPiercing: "no default setting", dickPiercing: "no default setting", anusPiercing: "no default setting", lipsPiercing: "no default setting", tonguePiercing: "no default setting", earPiercing: "no default setting", nosePiercing: "no default setting", eyebrowPiercing: "no default setting", navelPiercing: "no default setting", corsetPiercing: "no default setting", boobsTat: "no default setting", buttTat: "no default setting", vaginaTat: "no default setting", dickTat: "no default setting", lipsTat: "no default setting", anusTat: "no default setting", shouldersTat: "no default setting", armsTat: "no default setting", legsTat: "no default setting", backTat: "no default setting", stampTat: "no default setting", curatives: "no default setting", livingRules: "no default setting", relationshipRules: "no default setting", standardPunishment: "no default setting", standardReward: "no default setting", diet: "no default setting", dietCum: "no default setting", dietMilk: "no default setting", muscles: "no default setting", XY: "no default setting", XX: "no default setting", gelding: "no default setting", preg: "no default setting", growth: {boobs: "no default setting", butt: "no default setting", lips: "no default setting", dick: "no default setting", balls: "no default setting"}, autoSurgery: 0, autoBrand: 0, pornFameSpending: "no default setting", dietGrowthSupport: 0, eyewear: "no default setting", assignment: [], excludeAssignment: [], setAssignment: "no default setting", facility: [], excludeFacility: [], excludeSpecialSlaves: true, facilityRemove: false, removalAssignment: "rest", selectedSlaves: [], excludedSlaves: [], surgery: {eyes: "no default setting", lactation: "no default setting", prostate: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0}, underArmHColor: "no default setting", underArmHStyle: "no default setting", drug: "no default setting", eyes: "no default setting", pregSpeed: "nds" }>> + <<set _tempRule = {aphrodisiacs: "no default setting", condition: {id: "false"}, releaseRules: "no default setting", clitSetting: "no default setting", clitSettingXY: "no default setting", clitSettingXX: "no default setting", clitSettingEnergy: "no default setting", speechRules: "no default setting", clothes: "no default setting", collar: "no default setting", shoes: "no default setting", virginAccessory: "no default setting", aVirginAccessory: "no default setting", vaginalAccessory: "no default setting", aVirginDickAccessory: "no default setting", dickAccessory: "no default setting", bellyAccessory: "no default setting", aVirginButtplug: "no default setting", buttplug: "no default setting", eyeColor: "no default setting", makeup: "no default setting", nails: "no default setting", hColor: "no default setting", hLength: "no default setting", hStyle: "no default setting", pubicHColor: "no default setting", pubicHStyle: "no default setting", nipplesPiercing: "no default setting", areolaePiercing: "no default setting", clitPiercing: "no default setting", vaginaLube: "no default setting", vaginaPiercing: "no default setting", dickPiercing: "no default setting", anusPiercing: "no default setting", lipsPiercing: "no default setting", tonguePiercing: "no default setting", earPiercing: "no default setting", nosePiercing: "no default setting", eyebrowPiercing: "no default setting", navelPiercing: "no default setting", corsetPiercing: "no default setting", boobsTat: "no default setting", buttTat: "no default setting", vaginaTat: "no default setting", dickTat: "no default setting", lipsTat: "no default setting", anusTat: "no default setting", shouldersTat: "no default setting", armsTat: "no default setting", legsTat: "no default setting", backTat: "no default setting", stampTat: "no default setting", curatives: "no default setting", livingRules: "no default setting", relationshipRules: "no default setting", standardPunishment: "no default setting", standardReward: "no default setting", diet: "no default setting", dietCum: "no default setting", dietMilk: "no default setting", muscles: "no default setting", XY: "no default setting", XX: "no default setting", gelding: "no default setting", preg: "no default setting", growth: {boobs: "no default setting", butt: "no default setting", lips: "no default setting", dick: "no default setting", balls: "no default setting"}, autoSurgery: 0, autoBrand: 0, pornFameSpending: "no default setting", dietGrowthSupport: 0, eyewear: "no default setting", assignment: [], excludeAssignment: [], setAssignment: "no default setting", facility: [], excludeFacility: [], excludeSpecialSlaves: true, facilityRemove: false, removalAssignment: "rest", selectedSlaves: [], excludedSlaves: [], surgery: {eyes: "no default setting", lactation: "no default setting", prostate: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0, bellyImplant: "no default setting"}, underArmHColor: "no default setting", underArmHStyle: "no default setting", drug: "no default setting", eyes: "no default setting", pregSpeed: "nds", bellyImplantVol: -1}>> /* pick an ID higher than the highest ID of any existing rule */ <<for _tempRule.ID = 1, _r = 0; _r < _length; _r++>> diff --git a/src/uncategorized/rulesAutosurgery.tw b/src/uncategorized/rulesAutosurgery.tw index d32770254fa72fd603daa529ad3003b9c812bbbf..096e2e1847d7bbb3b0808b4c94879e6c3fcec56e 100644 --- a/src/uncategorized/rulesAutosurgery.tw +++ b/src/uncategorized/rulesAutosurgery.tw @@ -16,7 +16,9 @@ <<for _r = $defaultRules.length-1; _r >= 0; _r-->> <<set _currentRule = $defaultRules[_r]>> <<if (def _currentRule) && (_currentRule.autoSurgery != 0)>> - <<set $thisSurgery = _currentRule.surgery>> + /* <<set $thisSurgery = _currentRule.surgery>> THIS IS VERY BAD!!! Fuck up autosurgery rules */ + <<set $thisSurgery = Object.assign({}, _currentRule.surgery)>> /* We need deep copy, not shallow copy here. */ + <<set _temp = lastLactationSurgeryRule($slaves[$i], $defaultRules)>> <<if _temp != null>> <<set $thisSurgery.lactation = _temp.surgery.lactation>> @@ -49,6 +51,10 @@ <<if _temp != null>> <<set $thisSurgery.hair = _temp.surgery.hair>> <</if>> + <<set _temp = lastSurgeryRuleFor($slaves[$i], $defaultRules, "bellyImplant")>> + <<if _temp != null>> + <<set $thisSurgery.bellyImplant = _temp.surgery.bellyImplant>> + <</if>> <<if ($thisSurgery.hips !== "no default setting") && ($thisSurgery.butt !== "no default setting")>> <<if $slaves[$i].hips < -1>> <<if $thisSurgery.butt > 2>> @@ -75,7 +81,7 @@ <</if>> <<if ndef $thisSurgery>> - <<set $thisSurgery = {eyes: "no default setting", lactation: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0, bodyhair: 0, hair: 0}>> + <<set $thisSurgery = {eyes: "no default setting", lactation: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0, bodyhair: 0, hair: 0, bellyImplant: "no default setting"}>> <</if>> <<set $seed = 0>> @@ -351,6 +357,33 @@ <<set $slaves[$i].hips++, $slaves[$i].hipsImplant++>> <<set $cash -= $surgeryCost>> <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> +<<elseif $slaves[$i].bellyImplant < 0 && $bellyImplants > 0 && $thisSurgery.bellyImplant == "install" && $slaves[$i].womb.length == 0 && $slaves[$i].broodmother == 0>> + <<set $slaves[$i].bellyImplant = 100>> + <<set $slaves[$i].preg = -2>> + <<set $cash -= $surgeryCost>> + <<if $activeSlave.ovaries == 1 || $activeSlave.mpreg == 1>> + <<set $surgeries.push("belly implant"), $surgeryType = "bellyIn">> + <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> + <<else>> + <<set $surgeries.push("male belly implant"), $surgeryType = "bellyInMale">> + <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 25>><<else>><<set $slaves[$i].health -= 50>><</if>> + <</if>> + <<silently>> + <<set _tmpNextL = $nextLink, _tmpNextB = $nextButton>> + <<include "Surgery Degradation">> + <<set $nextLink = _tmpNextL, $nextButton = _tmpNextB>> + <</silently>> +<<elseif $slaves[$i].bellyImplant >= 0 && $thisSurgery.bellyImplant == "remove">> + <<set $surgeries.push("belly implant removal"), $surgeryType = "bellyOut">> + <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> + <<set $slaves[$i].preg = 0>> + <<set $slaves[$i].bellyImplant = -1>> + <<set $cash -= $surgeryCost>> + <<silently>> + <<set _tmpNextL = $nextLink, _tmpNextB = $nextButton>> + <<include "Surgery Degradation">> + <<set $nextLink = _tmpNextL, $nextButton = _tmpNextB>> + <</silently>> <<else>> <<set $seed = 1>> diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw index 2931ae24004f23ea0311a258606615d2f0712e67..66d6960bfc3bfb33fe8817058ae728601f49792d 100644 --- a/src/uncategorized/slaveAssignmentsReport.tw +++ b/src/uncategorized/slaveAssignmentsReport.tw @@ -315,13 +315,13 @@ <<if ($week / $slaves[$i].broodmotherFetuses == Math.round($week / $slaves[$i].broodmotherFetuses)) && $slaves[$i].broodmotherFetuses < 1>> /*one fetus in few week - selection and adding*/ <<set WombImpregnate($slaves[$i], 1, $slaves[$i].pregSource, 0)>> - <<else>> + <<else>> /*one or more fetuses in one week*/ <<set WombImpregnate($slaves[$i], Math.floor($slaves[$i].broodmotherFetuses), $slaves[$i].pregSource, 0)>> /* really 0, it's will be advanced right few lines down.*/ - <</if>> + <</if>> <<if $slaves[$i].ovaryAge >= 47>> <<set $slaves[$i].broodmotherOnHold = 1 >> - <<set $slaves[$i].broodmotherCountDown = 38 - WombMinPreg($slaves[$i])>> + <<set $slaves[$i].broodmotherCountDown = 37 - WombMinPreg($slaves[$i])>> <</if>> <</if>> @@ -338,12 +338,6 @@ /* end of preg speed and advance*/ -/* dublicate functional commented out -<<if $slaves[$i].pregWeek < 0>> - <<set $slaves[$i].pregWeek++>> -<</if>> -*/ - <<if $slaves[$i].devotion >= -50>> <<if $slaves[$i].energy > 20>> <<if $slaves[$i].physicalAge < $slaves[$i].pubertyAgeXY && $slaves[$i].genes == "XY" && $slaves[$i].energy <= 80>> diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw index a3569b50f6e24951d045de5075999826d48284ea..53c585cb3328bff8ca4c6770edb060fd1e86f8d5 100644 --- a/src/uncategorized/slaveInteract.tw +++ b/src/uncategorized/slaveInteract.tw @@ -1039,7 +1039,7 @@ Aphrodisiacs: <span id="aphrodisiacs"><strong><<if $activeSlave.aphrodisiacs > 1 <<SetBellySize $activeSlave>> <</if>> <<elseif $activeSlave.broodmotherOnHold == 1>> - //Her pregnancy implant is turned off; she expected to be completely emptied of her remaining brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>>// + //Her pregnancy implant is turned off<<if $activeSlave.broodmotherCountDown > 0>>; she expected to be completely emptied of her remaining brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>><<else>>.<</if>>// [[Turn on implant|Slave Interact][$activeSlave.broodmotherOnHold = 0, $activeSlave.broodmotherCountDown = 0]] <<elseif $activeSlave.preg >= -1>> Contraception: <span id="fertility"><strong><<if $activeSlave.preg == -1>><<print "using contraceptives">><<elseif $activeSlave.pregWeek < 0>><<print "postpartum">><<elseif $activeSlave.preg == 0>><<print "fertile">><<elseif $activeSlave.preg < 4>><<print "may be pregnant">><<else>><<print $activeSlave.preg>><<print " weeks pregnant">><</if>></strong></span>. diff --git a/src/uncategorized/surgeryDegradation.tw b/src/uncategorized/surgeryDegradation.tw index c97ab48a68c2cd5005e73575980c0e8cdaf96c50..b8fc71114d172763e7647244390d10bf46c1d7ff 100644 --- a/src/uncategorized/surgeryDegradation.tw +++ b/src/uncategorized/surgeryDegradation.tw @@ -409,12 +409,31 @@ As the remote surgery's long recovery cycle completes, <<replace "#seed">> You simply take her on the spot, using her to your liking and shooting a load deep into her receptive pussy. The implant rewards her upon successful fertilization, so her moans of pleasure as you pull out of her inform you she'll soon <<if $activeSlave.broodmother == 2>>be greatly swollen<<else>>grow heavy<</if>> with @@.lime;your brood.@@ <<set $activeSlave.pregSource = -1>> + <<set WombImpregnate($activeSlave, 1, -1, 1)>> /* to ensure player fatherinity we need actual fetus here */ <<VaginalVCheck>> <</replace>> <</link>> </span> <</if>> +<<case "pregRemove">> + <<if ($activeSlave.fetish == "pregnancy") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1)>> + She leaves the surgery with a certain soreness and minor pain in her lower abdomen, she knows that her days as broodmother is finished. She is @@.red; filled with despair@@ about missing being swollen with life and rubs her flat belly with sorrow. Only one fact slightly soothes her and allows to remain sane - at least she not become infertile and still can get pregnant naturally. As with all surgery @@.red;her health has been slightly affected.@@ + <<set $activeSlave.trust -= 10>> + <<set $activeSlave.devotion -= 30>> + <<elseif ($activeSlave.devotion > 50)>> + She leaves the surgery with a certain soreness and minor pain in her lower abdomen, she knows that her days as broodmother is finished. She's @@.hotpink;grateful@@ that you allow her body to be free of constant pregnancy stress, and a little nervous about if you will appreciate her enough without such dedication. As with all surgery @@.red;her health has been slightly affected.@@ + <<set $activeSlave.devotion += 4>> + <<elseif ($activeSlave.devotion >= -20)>> + She leaves the surgery with a certain soreness and minor pain in her lower abdomen, she knows that her days as broodmother is finished. She understands the realities of her life as a slave, so it isn't much of a shock. As with all surgery @@.red;her health has been slightly affected.@@ She is @@.gold;sensibly fearful@@ of your total power over her body. + <<set $activeSlave.trust -= 10>> + <<else>> + She leaves the surgery with a certain soreness and minor pain in her lower abdomen, she knows that her days as broodmother is finished. She does not understand the realities of her life as a slave at a core level, so she's @@.mediumorchid;terrified and angry@@ that you can change her boby so radically just at your will. As with all surgery @@.red;her health has been slightly affected.@@ She is @@.gold;sensibly fearful@@ of your total power over her body and her now empty womb. + <<set $activeSlave.trust -= 15>> + <<set $activeSlave.devotion -= 15>> + <</if>> + + <<case "freshOvaries">> <<if $activeSlave.ovaryAge >= 45>> <<if (($activeSlave.fetish == "pregnancy") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1)) || $activeSlave.origin == "She sold herself to you in the hope of someday bearing children.">> diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw index 6b226d5415058c1d23a8c00fab84c813cf36e8d5..c905ed175bdd070034b5cb607053a6ae1fa032d3 100644 --- a/src/utility/miscWidgets.tw +++ b/src/utility/miscWidgets.tw @@ -674,7 +674,7 @@ <<SetBellySize $activeSlave>> <</if>> <<elseif $activeSlave.broodmotherOnHold == 1>> - //Her pregnancy implant is turned off; she expected to be completely emptied of her remaining brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>>// + //Her pregnancy implant is turned off<<if $activeSlave.broodmotherCountDown > 0>>; she expected to be completely emptied of her remaining brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>><<else>>.<</if>>// [[Turn on implant|Slave Interact][$activeSlave.broodmotherOnHold = 0, $activeSlave.broodmotherCountDown = 0]] <<elseif ($activeSlave.preg >= -1)>> __Contraception__: <span id="fertility"><strong><<if $activeSlave.preg == -1>><<print "using contraceptives">><<elseif $activeSlave.pregWeek < 0>><<print "postpartum">><<elseif $activeSlave.preg == 0>><<print "fertile">><<elseif $activeSlave.preg < 4>><<print "may be pregnant">><<else>><<print $activeSlave.preg>><<print " weeks pregnant">><</if>></strong></span>. @@ -2359,62 +2359,64 @@ This experience Call as <<SetPregType>> $args[0]: Slave. */ -<<widget "SetPregType">> - <<if $args[0].ID == -1>> - <<if $PC.birthMaster > 0>> /* Predisposed to twins */ - <<if $PC.fertDrugs == 1>> - <<set $args[0].pregType = either(2, 2, 3, 3, 3, 3, 4, 4)>> - <<else>> - <<set $args[0].pregType = either(1, 1, 1, 2, 2, 2, 2, 2, 2, 3)>> - <</if>> - <<if $PC.forcedFertDrugs > 0>> - <<set $args[0].pregType += either(1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4)>> - <</if>> - <<else>> - <<if $PC.fertDrugs == 1>> - <<set $args[0].pregType = either(1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4)>> - <<else>> - <<set $args[0].pregType = either(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2)>> - <</if>> - <<if $PC.forcedFertDrugs > 0>> - <<set $args[0].pregType += either(0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4)>> - <</if>> - <</if>> - <<else>> - <<if $args[0].pregType == 0>> - <<if ($args[0].drugs == "super fertility drugs")>> - <<if (($masterSuitePregnancyFertilitySupplements == 1) && (($args[0].assignment == "serve in the master suite") || ($args[0].assignment == "be your Concubine")))>> - <<if ($args[0].hormones == 2)>> - <<set $args[0].pregType = random(20,29)>> +<<widget "SetPregType">> /* IMHO rework is posssible. Can be more interesting to play, if this code will take in account more body conditions - age, fat, food, hormone levels, etc. */ + <<if $args[0].broodmother < 1>> /* Broodmothers should be not processed here. Necessary now.*/ + <<if $args[0].ID == -1>> + <<if $PC.birthMaster > 0>> /* Predisposed to twins */ + <<if $PC.fertDrugs == 1>> + <<set $args[0].pregType = either(2, 2, 3, 3, 3, 3, 4, 4)>> <<else>> - <<set $args[0].pregType = random(10,29)>> + <<set $args[0].pregType = either(1, 1, 1, 2, 2, 2, 2, 2, 2, 3)>> + <</if>> + <<if $PC.forcedFertDrugs > 0>> + <<set $args[0].pregType += either(1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4)>> <</if>> <<else>> - <<if ($args[0].hormones == 2)>> - <<set $args[0].pregType = random(10,29)>> + <<if $PC.fertDrugs == 1>> + <<set $args[0].pregType = either(1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4)>> <<else>> - <<set $args[0].pregType = either(3, 4, 4, 4, 5, 5, 6, 10, 11, 20)>> + <<set $args[0].pregType = either(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2)>> <</if>> - <</if>> - <<elseif ($args[0].drugs == "fertility drugs")>> - <<if (($masterSuitePregnancyFertilitySupplements == 1) && (($args[0].assignment == "serve in the master suite") || ($args[0].assignment == "be your Concubine")))>> - <<if ($args[0].hormones == 2)>> - <<set $args[0].pregType = random(4,5)>> - <<else>> - <<set $args[0].pregType = either(2, 2, 3, 3, 3, 3, 4, 4, 5, 5)>> + <<if $PC.forcedFertDrugs > 0>> + <<set $args[0].pregType += either(0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4)>> <</if>> - <<else>> - <<if ($args[0].hormones == 2)>> - <<set $args[0].pregType = random(2,5)>> + <</if>> + <<else>> + <<if $args[0].pregType == 0>> + <<if ($args[0].drugs == "super fertility drugs")>> + <<if (($masterSuitePregnancyFertilitySupplements == 1) && (($args[0].assignment == "serve in the master suite") || ($args[0].assignment == "be your Concubine")))>> + <<if ($args[0].hormones == 2)>> + <<set $args[0].pregType = random(20,29)>> + <<else>> + <<set $args[0].pregType = random(10,29)>> + <</if>> + <<else>> + <<if ($args[0].hormones == 2)>> + <<set $args[0].pregType = random(10,29)>> + <<else>> + <<set $args[0].pregType = either(3, 4, 4, 4, 5, 5, 6, 10, 11, 20)>> + <</if>> + <</if>> + <<elseif ($args[0].drugs == "fertility drugs")>> + <<if (($masterSuitePregnancyFertilitySupplements == 1) && (($args[0].assignment == "serve in the master suite") || ($args[0].assignment == "be your Concubine")))>> + <<if ($args[0].hormones == 2)>> + <<set $args[0].pregType = random(4,5)>> + <<else>> + <<set $args[0].pregType = either(2, 2, 3, 3, 3, 3, 4, 4, 5, 5)>> + <</if>> + <<else>> + <<if ($args[0].hormones == 2)>> + <<set $args[0].pregType = random(2,5)>> + <<else>> + <<set $args[0].pregType = either(1, 1, 2, 2, 3, 3, 4, 4, 5, 5)>> + <</if>> + <</if>> <<else>> - <<set $args[0].pregType = either(1, 1, 2, 2, 3, 3, 4, 4, 5, 5)>> + <<set $args[0].pregType = either(1, 1, 1, 1, 1, 1, 1, 1, 1, 2)>> <</if>> <</if>> - <<else>> - <<set $args[0].pregType = either(1, 1, 1, 1, 1, 1, 1, 1, 1, 2)>> <</if>> <</if>> - <</if>> <</widget>> /* diff --git a/src/utility/raWidgets.tw b/src/utility/raWidgets.tw index 08e03e2438ef08eb3ea1a069c9ada6c4ff50a5df..d6a182780cba43055ef15d68605b3931ae201daf 100644 --- a/src/utility/raWidgets.tw +++ b/src/utility/raWidgets.tw @@ -3541,6 +3541,44 @@ Your brand design is ''$brandDesign.'' <</if>> <</if>> /* CLOSES FUCKDOLL CHECK */ + +/* Here belly implants size control, it's used Surgery Degradation passage to setup devotion and thrust changes. */ +<<if (def _combinedRule.bellyImplantVol) && $args[0].bellyImplant >= 0 && _combinedRule.bellyImplantVol >= 0>> + <<set _tmpNextL = $nextLink, _tmpNextB = $nextButton, _as = $activeSlave, $activeSlave = $args[0]>> /* this is hack to use Surgery Degradation without breaking normal End Week routine */ + <br> + <<if $args[0].health > -10 >> + <<set _bdiff = _combinedRule.bellyImplantVol - $args[0].bellyImplant>> + <<if _bdiff >= 5000 && $activeSlave.bellyPain == 0 && $args[0].health > 50>> + $args[0].slaveName's belly is way too smaller then desired size, so she has been directed to have intensive belly implant filling procedures throught this week. + <<set $surgeryType = "bellyUp", $activeSlave.bellyImplant += 1000, $activeSlave.bellyPain += 2>> + <<silently>> + <<include "Surgery Degradation">> + <</silently>> + <<elseif _bdiff >= 500 && $activeSlave.bellyPain < 2 >> + $args[0].slaveName's belly not reached desired size, so she has been directed to have belly implant filling procedures throught this week. + <<set $surgeryType = "bellyUp", $activeSlave.bellyImplant += 500, $activeSlave.bellyPain += 1>> + <<silently>> + <<include "Surgery Degradation">> + <</silently>> + <<elseif _bdiff <= -5000 >> + $args[0].slaveName's belly is way too big, so she has been directed to have intensive belly implant drainig procedures throught this week. + <<set $surgeryType = "bellyDown", $activeSlave.bellyImplant -= 1000>> + <<silently>> + <<include "Surgery Degradation">> + <</silently>> + <<elseif _bdiff <= -500 >> + $args[0].slaveName's belly is too big, so she has been directed to have belly implant drainig procedures throught this week. + <<set $surgeryType = "bellyDown", $activeSlave.bellyImplant -= 500>> + <<silently>> + <<include "Surgery Degradation">> + <</silently>> + <</if>> + <<else>> + $args[0].slaveName not heahty enough to safely manipulate her belly implant. + <</if>> + <<set $nextLink = _tmpNextL, $nextButton = _tmpNextB, $activeSlave = _as>> +<</if>> + /* < -------------------------------------------------------------------------Drug Assignment -------------------------------------------------------------------------------------------> */ /* Fertility */ <<if isFertile($args[0])>>