From 2c97c8b4beb21358d17a050c1d6e73d2750f9ff8 Mon Sep 17 00:00:00 2001 From: Vasileios Pasialiokis <whiterocket@outlook.com> Date: Sat, 31 Mar 2018 19:28:38 +0300 Subject: [PATCH] more defaultrules work --- src/js/DefaultRules.tw | 633 +++++++++++++++++++++-------------------- 1 file changed, 330 insertions(+), 303 deletions(-) diff --git a/src/js/DefaultRules.tw b/src/js/DefaultRules.tw index 3bc49f4439b..b97b9aa9830 100644 --- a/src/js/DefaultRules.tw +++ b/src/js/DefaultRules.tw @@ -13,6 +13,7 @@ window.DefaultRules = (function() { if(slave.fuckdoll === 0) ProcessNonFuckdoll(slave, combinedRule) ProcessBellyImplant(slave, combinedRule) + ProcessDrugs(slave, combinedRule) return r } @@ -422,21 +423,21 @@ window.DefaultRules = (function() { break case "long dildo": - if (V.activeSlave.breedingMark == 1) { + if (slave.breedingMark == 1) { r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin ${slave.slaveName} has been given a standard length dildo for her pussy.` slave.vaginalAccessory = "dildo" } break case "long, large dildo": - if (V.activeSlave.breedingMark == 1) { + if (slave.breedingMark == 1) { r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin ${slave.slaveName} has been given a standard length large dildo for her pussy.` slave.vaginalAccessory = "large dildo" } break case "long, huge dildo": - if (V.activeSlave.breedingMark == 1) { + if (slave.breedingMark == 1) { r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin ${slave.slaveName} has been given a standard length huge dildo for her pussy.` slave.vaginalAccessory = "huge dildo" } else { @@ -479,21 +480,21 @@ window.DefaultRules = (function() { break case "long dildo": - if (V.activeSlave.breedingMark == 1) { + if (slave.breedingMark == 1) { r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin ${slave.slaveName} has been given a standard length dildo for her pussy.` slave.vaginalAccessory = "dildo" } break case "long, large dildo": - if (V.activeSlave.breedingMark == 1) { + if (slave.breedingMark == 1) { r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin ${slave.slaveName} has been given a standard length large dildo for her pussy.` slave.vaginalAccessory = "large dildo" } break case "long, huge dildo": - if (V.activeSlave.breedingMark == 1) { + if (slave.breedingMark == 1) { r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin ${slave.slaveName} has been given a standard length huge dildo for her pussy.` slave.vaginalAccessory = "huge dildo" } else { @@ -536,21 +537,21 @@ window.DefaultRules = (function() { break case "long dildo": - if (V.activeSlave.breedingMark == 1) { + if (slave.breedingMark == 1) { r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so ${slave.slaveName} has been given a standard length dildo for her pussy.` slave.vaginalAccessory = "dildo" } break case "long, large dildo": - if (V.activeSlave.breedingMark == 1) { + if (slave.breedingMark == 1) { r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so ${slave.slaveName} has been given a standard length large dildo for her pussy.` slave.vaginalAccessory = "large dildo" } break case "long, huge dildo": - if (V.activeSlave.breedingMark == 1) { + if (slave.breedingMark == 1) { r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so ${slave.slaveName} has been given a standard length huge dildo for her pussy.` slave.vaginalAccessory = "huge dildo" } else { @@ -658,21 +659,21 @@ window.DefaultRules = (function() { break case "long plug": - if (V.activeSlave.breedingMark == 1) { + if (slave.breedingMark == 1) { r += `<br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so the anal virgin ${slave.slaveName} has been given a standard length plug for her anus.` slave.buttplug = "plug" } break case "long, large plug": - if (V.activeSlave.breedingMark == 1) { + if (slave.breedingMark == 1) { r += `<br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so the anal virgin ${slave.slaveName} has been given a standard length large plug for her anus.` slave.buttplug = "large plug" } break case "long, huge plug": - if (V.activeSlave.breedingMark == 1) { + if (slave.breedingMark == 1) { r += `<br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so the anal virgin ${slave.slaveName} has been given a standard length huge plug for her anus.` slave.buttplug = "huge plug" } else { @@ -715,21 +716,21 @@ window.DefaultRules = (function() { break case "long plug": - if (V.activeSlave.breedingMark == 1) { + if (slave.breedingMark == 1) { r += `<br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so ${slave.slaveName} has been given a standard length plug for her anus.` slave.buttplug = "plug" } break case "long, large plug": - if (V.activeSlave.breedingMark == 1) { + if (slave.breedingMark == 1) { r += `<br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so ${slave.slaveName} has been given a standard length large plug for her anus.` slave.buttplug = "large plug" } break case "long, huge plug": - if (V.activeSlave.breedingMark == 1) { + if (slave.breedingMark == 1) { r += `<br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so ${slave.slaveName} has been given a standard length huge plug for her anus.` slave.buttplug = "huge plug" } else { @@ -756,43 +757,321 @@ window.DefaultRules = (function() { } function ProcessBellyImplant(slave, rule) { - // TODO move whatever belly implant changing does to here - // Here is belly implant size control, it's used in Surgery Degradation passage to setup devotion and trust 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 small, so she has been directed to have intensive belly implant filling procedures throughout 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 has not reached the desired size, so she has been directed to have belly implant filling procedures throughout 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 draining procedures throughout 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 draining procedures throughout this week. - <<set $surgeryType = "bellyDown", $activeSlave.bellyImplant -= 500>> - <<silently>> - <<include "Surgery Degradation">> - <</silently>> - <</if>> - <<else>> - $args[0].slaveName is not healthy enough to safely adjust her belly implant. + // Here is belly implant size control, it's used in Surgery Degradation passage to setup devotion and trust changes. + // silent calls to surgery degradation have been replaced with a js function, which is less hacky + if ((rule.bellyImplantVol !== undefined) && slave.bellyImplant >= 0 && rule.bellyImplantVol >= 0) { + r += "<br>" + if (slave.health > -10 ) { + let diff = rule.bellyImplantVol - slave.bellyImplant + if (diff >= 5000 && slave.bellyPain == 0 && slave.health > 50) { + r += `${slave.slaveName}'s belly is way too small, so she has been directed to have intensive belly implant filling procedures throughout this week.` + slave.bellyImplant += 1000 + slave.bellyPain += 2 + BellySurgery(slave, diff) + } else if (diff >= 500 && slave.bellyPain < 2 ) { + r += `${slave.slaveName}'s belly has not reached the desired size, so she has been directed to have belly implant filling procedures throughout this week.` + slave.bellyImplant += 500 + slave.bellyPain += 1 + BellySurgery(slave, diff) + } else if (diff <= -5000 ) { + r += `${slave.slaveName}'s belly is way too big, so she has been directed to have intensive belly implant draining procedures throughout this week.` + slave.bellyImplant -= 1000 + BellySurgery(slave, diff) + } else if (diff <= -500 ) { + r += `${slave.slaveName}'s belly is too big, so she has been directed to have belly implant draining procedures throughout this week.` + slave.bellyImplant -= 500 + BellySurgery(slave, diff) + } + } else { + r += `${slave.slaveName} is not healthy enough to safely adjust her belly implant.` + } + } + } + + function BellySurgery(slave, volume) { + // this is a port of the belly implant portion of surgeryDegradation.tw + // that way, we don't have to use ugly hacks + // the original still exists, and may be worth replacing + if (volume > 0) { // bellyUp + SetBellySize(slave) + if (slave.bellyPain === 1) { + if (slave.devotion > 50) { + slave.devotion += 4 + } else if (slave.devotion >= -20) { + slave.trust -= 5 + } else { + slave.trust -= 10 + slave.devotion -= 5 + } + } else if (slave.bellyPain === 2) { + if (slave.devotion > 50) { + slave.devotion += 2 + } else if (slave.devotion >= -20) { + slave.trust -= 7 + } else { + slave.trust -= 12 + slave.devotion -= 7 + } + } + } else { // bellyDown + if (slave.bellyImplant < 0) + slave.bellyImplant = 0 + SetBellySize(slave) + if (slave.devotion > 50) { + slave.devotion += 3 + slave.trust += 3 + } else if (slave.devotion >= -20) { + slave.trust += 2 + } else { + slave.devotion += 1 + slave.trust -= 10 + } + } + } + + function ProcessDrugs(slave, rule) { + // assigns drugs to slave + if (isFertile(slave)) + ProcessFertilityDrugs(slave, rule) + ProcessAssetGrowthDrugs(slave, rule) + } + + function ProcessFertilityDrugs(slave, rule) { + // Fertility + if ((rule.preg !== undefined) && (rule.preg !== "no default setting")) { + if ((rule.preg == -1)) { + if (slave.preg !== -1) { + r += `<br>${slave.slaveName} is fertile, so she has been put on the appropriate contraceptive regime.` + slave.preg = -1 + } + if (slave.drugs == "fertility drugs" || slave.drugs == "super fertility drugs") { + slave.drugs = "no drugs" + } + } else if ((rule.preg == 0)) { + if (slave.preg !== 0) { + r += `<br>${slave.slaveName} is fertile, so she has been taken off contraceptives.` + slave.preg = 0 + } + if (slave.drugs == "fertility drugs" || slave.drugs == "super fertility drugs") { + slave.drugs = "no drugs" + } + } else if ((rule.preg == 1)) { + if (slave.preg !== 0 || slave.drugs !== "fertility drugs" || slave.hormones !== 0) { + slave.preg = 0 + slave.drugs = "fertility drugs" + slave.hormones = 0 + r += `<br>${slave.slaveName} is fertile, so she has been put on the appropriate fertility regime.` + } + } else if ((rule.preg == 2)) { + if (slave.preg !== 0 || slave.drugs !== "fertility drugs" || slave.hormones !== 2) { + slave.preg = 0 + slave.drugs = "fertility drugs" + slave.hormones = 2 + r += `<br>${slave.slaveName} is fertile, so she has been put on the appropriate fertility regime.` + } + } else if ((rule.preg == 3) && slave.indentureRestrictions < 1) { + if (slave.preg !== 0 || slave.drugs !== "super fertility drugs" || slave.hormones !== 0) { + slave.preg = 0 + slave.drugs = "super fertility drugs" + slave.hormones = 0 + r += `<br>${slave.slaveName} is fertile, so she has been put on the appropriate fertility regime.` + } + } else if ((rule.preg == 4) && slave.indentureRestrictions < 1) { + if (slave.preg !== 0 || slave.drugs !== "super fertility drugs" || slave.hormones !== 2) { + slave.preg = 0 + slave.drugs = "super fertility drugs" + slave.hormones = 2 + r += `<br>${slave.slaveName} is fertile, so she has been put on the appropriate fertility regime.` + } + } + } + } + + function ProcessAssetGrowthDrugs(slave, rule) { + // Asset Growth + growth_drugs = new Set(["breast injections", "intensive breast injections", "breast redistributors", "butt injections", "intensive butt injections", "butt redistributors", "lip injections", "lip atrophiers", "penis enhancement", "intensive penis enhancement", "penis atrophiers", "testicle enhancement", "intensive testicle enhancement", "testicle atrophiers", "hyper breast injections", "hyper butt injections", "hyper penis enhancement", "hyper testicle enhancement"]) + if ((slave.drugs == "super fertility drugs" || slave.drugs == "fertility drugs") && isFertile(slave)) { + r += `<br>slave.slaveName is on slave.drugs and will not be considered for drug enhancement until that regime is complete.` + return + } else if ((rule.growth.boobs == "no default setting" && rule.growth.butt == "no default setting" && rule.growth.lips == "no default setting" && rule.growth.dick == "no default setting" && rule.growth.dick == "no default setting" && rule.growth.balls == "no default setting")) { + return + } + if (slave.assignmentVisible) { // More resource intensive version with prioritizing. Possible to give this a toggle rather than basing it on visibility. + _priorities = [] + if (rule.growth.boobs != "no default setting") { + if (slave.boobs < rule.growth.boobs) { + _priority = {drug: "breast injections", weight: (rule.growth.boobs-slave.boobs)/rule.growth.boobs}, _priorities.push(_priority) + } else if ((slave.boobs > rule.growth.boobs+200) && slave.weight < 100 && (V.arcologies[0].FSSlimnessEnthusiastResearch == 1)) { + _priority = {drug: "breast redistributors", weight: (1+((slave.boobs-slave.boobsImplant-rule.growth.boobs)/rule.growth.boobs))}, _priorities.push(_priority) + } + } + if (rule.growth.butt != "no default setting") { + if (slave.butt < rule.growth.butt) { + _priority = {drug: "butt injections", weight: (rule.growth.butt-slave.butt)/rule.growth.butt}, _priorities.push(_priority) + } else if ((Math.trunc(slave.butt) > rule.growth.butt) && slave.weight < 100 && (V.arcologies[0].FSSlimnessEnthusiastResearch == 1)) { + _priority = {drug: "butt redistributors", weight: (1+((slave.butt-slave.buttImplant-rule.growth.butt)/rule.growth.butt))}, _priorities.push(_priority) + } + } + if (rule.growth.lips != "no default setting") { + if (slave.lips < rule.growth.lips) { + _priority = {drug: "lip injections", weight: (rule.growth.lips-slave.lips)/rule.growth.lips}, _priorities.push(_priority) + } else if ((slave.lips > rule.growth.lips) && (V.arcologies[0].FSSlimnessEnthusiastResearch == 1)) { + _priority = {drug: "lip atrophiers", weight: (1+((slave.lips-slave.lipsImplant-rule.growth.lips)/rule.growth.lips))}, _priorities.push(_priority) + } + } + if (rule.growth.dick != "no default setting" && slave.dick) { + if (slave.dick < rule.growth.dick) { + _priority = {drug: "penis enhancement", weight: (rule.growth.dick-slave.dick)/rule.growth.dick}, _priorities.push(_priority) + } else if ((slave.dick > rule.growth.dick) && (V.arcologies[0].FSSlimnessEnthusiastResearch == 1)) { + _priority = {drug: "penis atrophiers", weight: (1+((slave.dick-rule.growth.dick)/rule.growth.dick))}, _priorities.push(_priority) + } + } + if (rule.growth.balls != "no default setting" && slave.balls) { + if (slave.balls < rule.growth.balls) { + _priority = {drug: "testicle enhancement", weight: (rule.growth.balls-slave.balls)/rule.growth.balls}, _priorities.push(_priority) + } else if ((slave.balls > rule.growth.balls) && (V.arcologies[0].FSSlimnessEnthusiastResearch == 1)) { + _priority = {drug: "testicle atrophiers", weight: (1+((slave.balls-rule.growth.balls)/rule.growth.balls))}, _priorities.push(_priority) + } + } + if (_priorities.length > 1) { + _priorities = _priorities.sort(function(a, b){if(a.weight > b.weight) return -1; if(a.weight < b.weight) return 1; return 0;}) + if (slave.drugs != _priorities[0].drug) { + slave.drugs = _priorities[0].drug + r += `<br>${slave.slaveName} has been put on ` + if (rule.growth.intensity && slave.drugs != "lip injections" && slave.health > 0) { + slave.drugs = "intensive " + slave.drugs + r += `${slave.drugs}, since she's healthy enough to take them, and ` + } else { + r += `${slave.drugs}, since` + } + r += `that part of her body is ${Math.trunc(_priorities[0].weight*100)}>>% ` + if (_priorities[0].weight < 1) r+= "below " + else r+= "above " + r += "the targeted size." + } + return + } else if (_priorities.length > 0) { + if (slave.drugs != _priorities[0].drug) { + slave.drugs = _priorities[0].drug + <br>slave.slaveName has been put on + if (rule.growth.intensity && slave.drugs != "lip injections" && slave.health > 0) + slave.drugs = "intensive " + slave.drugs + slave.drugs, since she's healthy enough to take them, and + else + slave.drugs, since + <</if>> + that is the only part of her body that does not meet the targeted size. + } + return + } else if (growth_drugs.includes(slave.drugs)) { + slave.drugs = "no drugs" + <br>slave.slaveName's body has met all relevant growth targets, so her pharmaceutical regime has been ended. + return + } + } else { + if (V.arcologies[0].FSAssetExpansionistResearch == 1) + _hyper = "hyper " + else + _hyper = "" <</if>> - <<set $nextLink = _tmpNextL, $nextButton = _tmpNextB, $activeSlave = _as>> - <</if>> + if (rule.growth.boobs != "no default setting") { + if (slave.boobs < rule.growth.boobs) { + if (slave.drugs != _hyper + "breast injections") { + slave.drugs = _hyper + "breast injections" + <br>slave.slaveName has been put on slave.drugs. + } + return + } + } + if (rule.growth.butt != "no default setting") { + if (slave.butt < rule.growth.butt) { + if (slave.drugs != _hyper + "butt injections") { + slave.drugs = _hyper + "butt injections" + <br>slave.slaveName has been put on slave.drugs. + } + return + } + } + if (rule.growth.lips != "no default setting") { + if (slave.lips < rule.growth.lips) { + if (slave.drugs != "lip injections") { + slave.drugs = "lip injections" + <br>slave.slaveName has been put on slave.drugs. + } + return + } + } + if (rule.growth.dick != "no default setting" && slave.dick) { + if (slave.dick < rule.growth.dick) { + if (slave.drugs != _hyper + "penis enhancement") { + slave.drugs = _hyper + "penis enhancement" + <br>slave.slaveName has been put on slave.drugs. + } + return + } + } + if (rule.growth.balls != "no default setting" && slave.balls) { + if (slave.balls < rule.growth.balls) { + if (slave.drugs != _hyper + "testicle enhancement") { + slave.drugs = _hyper + "testicle enhancement" + <br>slave.slaveName has been put on slave.drugs. + } + return + } + } + if (V.arcologies[0].FSSlimnessEnthusiastResearch == 1) { + if (rule.growth.boobs != "no default setting") { + if (slave.boobs-slave.boobsImplant > rule.growth.boobs+200 && slave.weight < 100) { + if (slave.drugs != "breast redistributors") { + slave.drugs = "breast redistributors" + <br>slave.slaveName has been put on slave.drugs. + } + return + } + } + if (rule.growth.butt != "no default setting") { + if (Math.trunc(slave.butt-slave.buttImplant) > rule.growth.butt && slave.weight < 100) { + if (slave.drugs != "butt redistributors") { + slave.drugs = "butt redistributors" + <br>slave.slaveName has been put on slave.drugs. + } + return + } + } + if (rule.growth.lips != "no default setting") { + if (slave.lips-slave.lipsImplant > rule.growth.lips) { + if (slave.drugs != "lip atrophiers") { + slave.drugs = "lip atrophiers" + <br>slave.slaveName has been put on slave.drugs. + } + return + } + } + if (rule.growth.dick != "no default setting" && slave.dick) { + if (slave.dick > rule.growth.dick) { + if (slave.drugs != "penis atrophiers") { + slave.drugs = "penis atrophiers" + <br>slave.slaveName has been put on slave.drugs. + } + return + } + } + if (rule.growth.balls != "no default setting" && slave.balls) { + if (slave.balls > rule.growth.balls) { + if (slave.drugs != "testicle atrophiers") { + slave.drugs = "testicle atrophiers" + <br>slave.slaveName has been put on slave.drugs. + } + return + } + } + } + if ((growth_drugs.includes(slave.drugs))) { + slave.drugs = "no drugs" + <br>slave.slaveName has met all relevant growth targets, so her pharmaceutical regime has been ended. + return + } + } } return DefaultRules @@ -804,259 +1083,7 @@ window.DefaultRules = (function() { /* <<widget "DefaultRules">> <<if (def _combinedRule.clothes)>> - // < -------------------------------------------------------------------------Drug Assignment -------------------------------------------------------------------------------------------> - // Fertility - <<if isFertile($args[0])>> - <<if (def _combinedRule.preg) && (_combinedRule.preg !== "no default setting")>> - <<if (_combinedRule.preg == -1)>> - <<if $args[0].preg !== -1>> - <br>$args[0].slaveName is fertile, so she has been put on the appropriate contraceptive regime. - <<set $args[0].preg = -1>> - <</if>> - <<if $args[0].drugs == "fertility drugs" || $args[0].drugs == "super fertility drugs">> - <<set $args[0].drugs = "no drugs">> - <</if>> - <<elseif (_combinedRule.preg == 0)>> - <<if $args[0].preg !== 0>> - <br>$args[0].slaveName is fertile, so she has been taken off contraceptives. - <<set $args[0].preg = 0>> - <</if>> - <<if $args[0].drugs == "fertility drugs" || $args[0].drugs == "super fertility drugs">> - <<set $args[0].drugs = "no drugs">> - <</if>> - <<elseif (_combinedRule.preg == 1)>> - <<if $args[0].preg !== 0 || $args[0].drugs !== "fertility drugs" || $args[0].hormones !== 0>> - <<set $args[0].preg = 0>> - <<set $args[0].drugs = "fertility drugs">> - <<set $args[0].hormones = 0>> - <br>$args[0].slaveName is fertile, so she has been put on the appropriate fertility regime. - <</if>> - <<elseif (_combinedRule.preg == 2)>> - <<if $args[0].preg !== 0 || $args[0].drugs !== "fertility drugs" || $args[0].hormones !== 2>> - <<set $args[0].preg = 0>> - <<set $args[0].drugs = "fertility drugs">> - <<set $args[0].hormones = 2>> - <br>$args[0].slaveName is fertile, so she has been put on the appropriate fertility regime. - <</if>> - <<elseif (_combinedRule.preg == 3) and $args[0].indentureRestrictions < 1>> - <<if $args[0].preg !== 0 || $args[0].drugs !== "super fertility drugs" || $args[0].hormones !== 0>> - <<set $args[0].preg = 0>> - <<set $args[0].drugs = "super fertility drugs">> - <<set $args[0].hormones = 0>> - <br>$args[0].slaveName is fertile, so she has been put on the appropriate fertility regime. - <</if>> - <<elseif (_combinedRule.preg == 4) and $args[0].indentureRestrictions < 1>> - <<if $args[0].preg !== 0 || $args[0].drugs !== "super fertility drugs" || $args[0].hormones !== 2>> - <<set $args[0].preg = 0>> - <<set $args[0].drugs = "super fertility drugs">> - <<set $args[0].hormones = 2>> - <br>$args[0].slaveName is fertile, so she has been put on the appropriate fertility regime. - <</if>> - <</if>> - <</if>> - <</if>> - - // Asset Growth - <<set _tempAssetGrowthDrugs = ["breast injections", "intensive breast injections", "breast redistributors", "butt injections", "intensive butt injections", "butt redistributors", "lip injections", "lip atrophiers", "penis enhancement", "intensive penis enhancement", "penis atrophiers", "testicle enhancement", "intensive testicle enhancement", "testicle atrophiers", "hyper breast injections", "hyper butt injections", "hyper penis enhancement", "hyper testicle enhancement"]>> - <<for _g = 0; _g < 1; _g++>> // Growth drugs. Single loop broken when we find a drug to apply, or that a currently active drug is working on an unsatisfied growth target. Please advise if cleaner or more efficient code is possible. - <<if ($args[0].drugs == "super fertility drugs" || $args[0].drugs == "fertility drugs") && isFertile($args[0])>> - <br>$args[0].slaveName is on $args[0].drugs and will not be considered for drug enhancement until that regime is complete. - <<break>> - <<elseif (_combinedRule.growth.boobs == "no default setting" && _combinedRule.growth.butt == "no default setting" && _combinedRule.growth.lips == "no default setting" && _combinedRule.growth.dick == "no default setting" && _combinedRule.growth.dick == "no default setting" && _combinedRule.growth.balls == "no default setting")>> - <<break>> - <</if>> - <<if $args[0].assignmentVisible>> // More resource intensive version with prioritizing. Possible to give this a toggle rather than basing it on visibility. - <<set _priorities = []>> - <<if _combinedRule.growth.boobs != "no default setting">> - <<if $args[0].boobs < _combinedRule.growth.boobs>> - <<set _priority = {drug: "breast injections", weight: (_combinedRule.growth.boobs-$args[0].boobs)/_combinedRule.growth.boobs}, _priorities.push(_priority)>> - <<elseif ($args[0].boobs > _combinedRule.growth.boobs+200) && $args[0].weight < 100 && ($arcologies[0].FSSlimnessEnthusiastResearch == 1)>> - <<set _priority = {drug: "breast redistributors", weight: (1+(($args[0].boobs-$args[0].boobsImplant-_combinedRule.growth.boobs)/_combinedRule.growth.boobs))}, _priorities.push(_priority)>> - <</if>> - <</if>> - <<if _combinedRule.growth.butt != "no default setting">> - <<if $args[0].butt < _combinedRule.growth.butt>> - <<set _priority = {drug: "butt injections", weight: (_combinedRule.growth.butt-$args[0].butt)/_combinedRule.growth.butt}, _priorities.push(_priority)>> - <<elseif (Math.trunc($args[0].butt) > _combinedRule.growth.butt) && $args[0].weight < 100 && ($arcologies[0].FSSlimnessEnthusiastResearch == 1)>> - <<set _priority = {drug: "butt redistributors", weight: (1+(($args[0].butt-$args[0].buttImplant-_combinedRule.growth.butt)/_combinedRule.growth.butt))}, _priorities.push(_priority)>> - <</if>> - <</if>> - <<if _combinedRule.growth.lips != "no default setting">> - <<if $args[0].lips < _combinedRule.growth.lips>> - <<set _priority = {drug: "lip injections", weight: (_combinedRule.growth.lips-$args[0].lips)/_combinedRule.growth.lips}, _priorities.push(_priority)>> - <<elseif ($args[0].lips > _combinedRule.growth.lips) && ($arcologies[0].FSSlimnessEnthusiastResearch == 1)>> - <<set _priority = {drug: "lip atrophiers", weight: (1+(($args[0].lips-$args[0].lipsImplant-_combinedRule.growth.lips)/_combinedRule.growth.lips))}, _priorities.push(_priority)>> - <</if>> - <</if>> - <<if _combinedRule.growth.dick != "no default setting">> - <<if $args[0].dick>> - <<if $args[0].dick < _combinedRule.growth.dick>> - <<set _priority = {drug: "penis enhancement", weight: (_combinedRule.growth.dick-$args[0].dick)/_combinedRule.growth.dick}, _priorities.push(_priority)>> - <<elseif ($args[0].dick > _combinedRule.growth.dick) && ($arcologies[0].FSSlimnessEnthusiastResearch == 1)>> - <<set _priority = {drug: "penis atrophiers", weight: (1+(($args[0].dick-_combinedRule.growth.dick)/_combinedRule.growth.dick))}, _priorities.push(_priority)>> - <</if>> - <</if>> - <</if>> - <<if _combinedRule.growth.balls != "no default setting">> - <<if $args[0].balls>> - <<if $args[0].balls < _combinedRule.growth.balls>> - <<set _priority = {drug: "testicle enhancement", weight: (_combinedRule.growth.balls-$args[0].balls)/_combinedRule.growth.balls}, _priorities.push(_priority)>> - <<elseif ($args[0].balls > _combinedRule.growth.balls) && ($arcologies[0].FSSlimnessEnthusiastResearch == 1)>> - <<set _priority = {drug: "testicle atrophiers", weight: (1+(($args[0].balls-_combinedRule.growth.balls)/_combinedRule.growth.balls))}, _priorities.push(_priority)>> - <</if>> - <</if>> - <</if>> - <<if _priorities.length > 1>> - <<set _priorities = _priorities.sort(function(a, b){if(a.weight > b.weight) return -1; if(a.weight < b.weight) return 1; return 0;})>> - <<if $args[0].drugs != _priorities[0].drug>> - <<set $args[0].drugs = _priorities[0].drug>> - <br>$args[0].slaveName has been put on - <<if _combinedRule.growth.intensity && $args[0].drugs != "lip injections" && $args[0].health > 0>> - <<set $args[0].drugs = "intensive " + $args[0].drugs>> - $args[0].drugs, since she's healthy enough to take them, and - <<else>> - $args[0].drugs, since - <</if>> - that part of her body is <<print Math.trunc(_priorities[0].weight*100)>>% - <<if _priorities[0].weight < 1>>below - <<else>>above - <</if>> - the targeted size. - <</if>> - <<break>> - <<elseif _priorities.length > 0>> - <<if $args[0].drugs != _priorities[0].drug>> - <<set $args[0].drugs = _priorities[0].drug>> - <br>$args[0].slaveName has been put on - <<if _combinedRule.growth.intensity && $args[0].drugs != "lip injections" && $args[0].health > 0>> - <<set $args[0].drugs = "intensive " + $args[0].drugs>> - $args[0].drugs, since she's healthy enough to take them, and - <<else>> - $args[0].drugs, since - <</if>> - that is the only part of her body that does not meet the targeted size. - <</if>> - <<break>> - <<elseif _tempAssetGrowthDrugs.includes($args[0].drugs)>> - <<set $args[0].drugs = "no drugs">> - <br>$args[0].slaveName's body has met all relevant growth targets, so her pharmaceutical regime has been ended. - <<break>> - <</if>> - <<else>> - <<if $arcologies[0].FSAssetExpansionistResearch == 1>> - <<set _hyper = "hyper ">> - <<else>> - <<set _hyper = "">> - <</if>> - <<if _combinedRule.growth.boobs != "no default setting">> - <<if $args[0].boobs < _combinedRule.growth.boobs>> - <<if $args[0].drugs != _hyper + "breast injections">> - <<set $args[0].drugs = _hyper + "breast injections">> - <br>$args[0].slaveName has been put on $args[0].drugs. - <</if>> - <<break>> - <</if>> - <</if>> - <<if _combinedRule.growth.butt != "no default setting">> - <<if $args[0].butt < _combinedRule.growth.butt>> - <<if $args[0].drugs != _hyper + "butt injections">> - <<set $args[0].drugs = _hyper + "butt injections">> - <br>$args[0].slaveName has been put on $args[0].drugs. - <</if>> - <<break>> - <</if>> - <</if>> - <<if _combinedRule.growth.lips != "no default setting">> - <<if $args[0].lips < _combinedRule.growth.lips>> - <<if $args[0].drugs != "lip injections">> - <<set $args[0].drugs = "lip injections">> - <br>$args[0].slaveName has been put on $args[0].drugs. - <</if>> - <<break>> - <</if>> - <</if>> - <<if _combinedRule.growth.dick != "no default setting">> - <<if $args[0].dick>> - <<if $args[0].dick < _combinedRule.growth.dick>> - <<if $args[0].drugs != _hyper + "penis enhancement">> - <<set $args[0].drugs = _hyper + "penis enhancement">> - <br>$args[0].slaveName has been put on $args[0].drugs. - <</if>> - <<break>> - <</if>> - <</if>> - <</if>> - <<if _combinedRule.growth.balls != "no default setting">> - <<if $args[0].balls>> - <<if $args[0].balls < _combinedRule.growth.balls>> - <<if $args[0].drugs != _hyper + "testicle enhancement">> - <<set $args[0].drugs = _hyper + "testicle enhancement">> - <br>$args[0].slaveName has been put on $args[0].drugs. - <</if>> - <<break>> - <</if>> - <</if>> - <</if>> - <<if $arcologies[0].FSSlimnessEnthusiastResearch == 1>> - <<if _combinedRule.growth.boobs != "no default setting">> - <<if $args[0].boobs-$args[0].boobsImplant > _combinedRule.growth.boobs+200 && $args[0].weight < 100>> - <<if $args[0].drugs != "breast redistributors">> - <<set $args[0].drugs = "breast redistributors">> - <br>$args[0].slaveName has been put on $args[0].drugs. - <</if>> - <<break>> - <</if>> - <</if>> - <<if _combinedRule.growth.butt != "no default setting">> - <<if Math.trunc($args[0].butt-$args[0].buttImplant) > _combinedRule.growth.butt && $args[0].weight < 100>> - <<if $args[0].drugs != "butt redistributors">> - <<set $args[0].drugs = "butt redistributors">> - <br>$args[0].slaveName has been put on $args[0].drugs. - <</if>> - <<break>> - <</if>> - <</if>> - <<if _combinedRule.growth.lips != "no default setting">> - <<if $args[0].lips-$args[0].lipsImplant > _combinedRule.growth.lips>> - <<if $args[0].drugs != "lip atrophiers">> - <<set $args[0].drugs = "lip atrophiers">> - <br>$args[0].slaveName has been put on $args[0].drugs. - <</if>> - <<break>> - <</if>> - <</if>> - <<if _combinedRule.growth.dick != "no default setting">> - <<if $args[0].dick>> - <<if $args[0].dick > _combinedRule.growth.dick>> - <<if $args[0].drugs != "penis atrophiers">> - <<set $args[0].drugs = "penis atrophiers">> - <br>$args[0].slaveName has been put on $args[0].drugs. - <</if>> - <<break>> - <</if>> - <</if>> - <</if>> - <<if _combinedRule.growth.balls != "no default setting">> - <<if $args[0].balls>> - <<if $args[0].balls > _combinedRule.growth.balls>> - <<if $args[0].drugs != "testicle atrophiers">> - <<set $args[0].drugs = "testicle atrophiers">> - <br>$args[0].slaveName has been put on $args[0].drugs. - <</if>> - <<break>> - <</if>> - <</if>> - <</if>> - <</if>> - <<if (_tempAssetGrowthDrugs.includes($args[0].drugs))>> - <<set $args[0].drugs = "no drugs">> - <br>$args[0].slaveName has met all relevant growth targets, so her pharmaceutical regime has been ended. - <<break>> - <</if>> - <</if>> - <</for>> - // Closes single for loop for growth drugs. // Other Drugs <<set _tempDrugsDrugs = ["psychosuppressants", "no drugs", "steroids", "hormone enhancers", "hormone blockers", "anti-aging cream", "growth stimulants", "sag-B-gone", "male hormone injections", "female hormone injections", "none"]>> -- GitLab