diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt index 8ab7ee9987f9fa4078b7b071691cded297f28918..8bbbcf5f98c8af7c057ad5d6a1f020997897e003 100644 --- a/devNotes/twine JS.txt +++ b/devNotes/twine JS.txt @@ -9968,8 +9968,8 @@ window.DefaultRules = (function() { function MergeRules(slave) { // merge all rules applying on a slave into one big rule - const rules = V.defaultRules.filter(x => ruleAppliesP(x.condition, slave)) - slave.currentRules = rules.map(x => x.ID) + const rules = V.defaultRules.filter(x => ruleAppliesP(x.condition, slave)); + slave.currentRules = rules.map(x => x.ID); return mergeRules(rules.map(x => ProcessAssignments(slave, Object.assign({}, x.set)))); } @@ -11008,62 +11008,158 @@ window.DefaultRules = (function() { function ProcessOtherDrugs(slave, rule) { // Other Drugs - if (rule.drug !== "no default setting" && slave.drugs !== rule.drug) { + if (slave.indentureRestrictions < 2 && rule.drug !== "no default setting" && slave.drugs !== rule.drug) { + let flag = true; switch (rule.drug) { case "anti-aging cream": - if (slave.visualAge > 18) { - slave.drugs = rule.drug ; - r += `<br>${slave.slaveName} has been put on ${slave.drugs}.`; - } else { - slave.drugs = "no drugs" ; - r += `<br>${slave.slaveName} cannot benefit from her assigned drug and has been defaulted to ${slave.drugs}.`; - } + if (slave.visualAge < 18) + flag = false; break; case "growth stimulants": - if (slave.height < 274 && slave.height < Math.clamp((Height.mean(slave) * 1.25),0,274)) { - slave.drugs = rule.drug; - r += `<br>${slave.slaveName} has been put on ${slave.drugs}.`; - } else { - slave.drugs = "no drugs"; - r += `<br>${slave.slaveName} cannot benefit from her assigned drug and has been defaulted to ${slave.drugs}.`; - } + if (!(slave.height < 274 && slave.height < Math.clamp((Height.mean(slave) * 1.25),0,274))) + flag = false; break; case "sag-B-gone": - if (slave.boobs > 250 && slave.boobShape != "saggy") { - slave.drugs = rule.drug; - r += `<br>${slave.slaveName} has been put on ${slave.drugs}.`; - } else { - slave.drugs = "no drugs"; - r += `<br>${slave.slaveName} cannot benefit from her assigned drug and has been defaulted to ${slave.drugs}.`; - } + if (!(slave.boobs > 250 && slave.boobShape != "saggy")) + flag = false; break; case "female hormone injections": - if (slave.breedingMark != 1 && (slave.ovaries == 1 || slave.mpreg == 1) && slave.pubertyXX === 0) { - slave.drugs = rule.drug ; - r += `<br>${slave.slaveName} has been put on ${slave.drugs}.`; - } else { - slave.drugs = "no drugs"; - r += `<br>${slave.slaveName} cannot benefit from her assigned drug and has been defaulted to ${slave.drugs}.`; - } + if (!(slave.breedingMark != 1 && (slave.ovaries == 1 || slave.mpreg == 1) && slave.pubertyXX === 0)) + flag = false; break; case "male hormone injections": - if (slave.breedingMark != 1 && slave.balls > 0 && slave.pubertyXY === 0) { - slave.drugs = rule.drug ; - r += `<br>${slave.slaveName} has been put on ${slave.drugs}.`; - } else { - slave.drugs = "no drugs"; - r += `<br>${slave.slaveName} cannot benefit from her assigned drug and has been defaulted to ${slave.drugs}.`; - } + if (!(slave.breedingMark != 1 && slave.balls > 0 && slave.pubertyXY === 0)) + flag = false; break; - + + case "psychosuppressants": + if (!(slave.intelligence > -2 && slave.indentureRestrictions < 1)) + flag = false; + break; + + case "breast injections": + if (!(slave.boobs < 48000)) + flag = false; + break; + + case "hyper breast injections": + if (!(slave.boobs < 25000)) + flag = false; + break; + + case "breast redistributors": + if (!(slave.boobs - slave.boobsImplant > 100)) + flag = false; + break; + + case "butt injections": + if (!(slave.butt < 9)) + flag = false; + break; + + case "hyper butt injections": + if (!(slave.butt < 20)) + flag = false; + break; + + case "hyper butt injections": + if (!(slave.butt < 20)) + flag = false; + break; + + case "nipple atrophiers": + if (!(["huge", "puffy", "cute"].includes(slave.nipples))) + flag = false; + break; + + case "butt redistributors": + if (!(slave.buttImplant > 0)) + flag = false; + break; + + case "lip injections": + if (!(slave.lips <= 95 || (slave.lips <= 85 && V.seeExtreme !== 1))) + flag = false; + break; + + case "lip atrophiers": + if (!(slave.lips - slave.lipsImplant > 0)) + flag = false; + break; + + case "super fertility drugs": + if (!(slave.indentureRestrictions < 1 && slave.breedingMark !== 1)) + flag = false; + break; + + case "penis enhancement": + if (!((slave.dick > 0 && slave.dick < 10) || slave.clit < 5)) + flag = false; + break; + + case "hyper penis enhancement": + if (!((slave.dick > 0 && slave.dick < 31) || slave.clit < 5)) + flag = false; + break; + + case "penis atrophiers": + if (!(slave.dick > 1)) + flag = false; + break; + + case "testicle enhancement": + if (!(slave.balls > 0)) + flag = false; + break; + + case "hyper testicle enhancement": + if (!(slave.balls > 0)) + flag = false; + break; + + case "testicle atrophiers": + if (!(slave.balls > 1)) + flag = false; + break; + + case "clitoris atrophiers": + if (!(slave.clit > 0)) + flag = false; + break; + + case "labia atrophiers": + if (!(slave.labia > 0)) + flag = false; + break; + + case "appetite suppressors": + if (!(slave.weight > -95)) + flag = false; + break; + + case "female hormone injections": + if (!(slave.breedingMark !== 1 && (slave.ovaries === 1 || slave.mpreg === 1) && slave.pubertyXX === 0)) + flag = false; + break; + + case "male hormone injections": + if (!(slave.balls > 0 && slave.pubertyXY === 0)) + flag = false; + break; + default: + break; + } + if (flag) { slave.drugs = rule.drug; r += `<br>${slave.slaveName} has been put on ${slave.drugs}.`; - break; + } else { + slave.drugs = "no drugs"; + r += `<br>${slave.slaveName} cannot benefit from her assigned drug and has been defaulted to ${slave.drugs}`; } } } @@ -13597,6 +13693,15 @@ window.rulesAssistantOptions = (function() { ["Steroids", "steroids"], ["Natural hormone enhancers", "hormone enhancers"], ["Hormone blockers", "hormone blockers"], + ["breast injections"], + ["intensive breast injections"], + ["butt injections"], + ["intensive butt injections"], + ["lip injections"], + ["penis enhancement"], + ["intensive penis enhancement"], + ["testicle enhancement"], + ["intensive testicle enhancement"], ]; if (V.growthStim === 1) @@ -13607,8 +13712,20 @@ window.rulesAssistantOptions = (function() { } if (V.purchasedSagBGone === 1) drugs.push(["Sag-B-gone (Product)", "sag-B-gone"]); - if (V.arcologies[0].FSSlimnessEnthusiastResearch === 1) + if (V.arcologies[0].FSSlimnessEnthusiastResearch === 1) { drugs.push(["Weight loss pills (FS)", "appetite suppressors"]); + drugs.push(["breast redistributors"]); + drugs.push(["butt redistributors"]); + drugs.push(["lip atrophiers"]); + drugs.push(["penis atrophiers"]); + drugs.push(["testicle atrophiers"]); + } + if (V.arcologies[0].FSAssetExpansionistResearch === 1) { + drugs.push(["hyper breast injections"]); + drugs.push(["hyper butt injections"]); + drugs.push(["hyper penis enhancement"]); + drugs.push(["hyper testicle enhancement"]); + } if (V.arcologies[0].FSYouthPreferentialistResearch === 1) drugs.push(["Anti-aging cream (FS)", "anti-aging cream"]); if (V.seeHyperPreg === 1 && V.superFertilityDrugs === 1) diff --git a/src/utility/birthWidgets.tw b/src/utility/birthWidgets.tw index 100262061f8147d48b968b43f10e8ae20cca4d7f..3a3a6f19885ceb84df059d3a3b3d18a4e3278825 100644 --- a/src/utility/birthWidgets.tw +++ b/src/utility/birthWidgets.tw @@ -1546,6 +1546,7 @@ Feeling childbirth approaching, $slaves[$i].slaveName is helped to her prepared Instinctively, she begins to push out <<if $slaves[$i].broodmother > 0>><<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby<<else>>her bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>><</if>>, indifferent to the obvious wetness forming <<if $slaves[$i].mpreg == 1>>under her rear<<else>>over her crotch<</if>>. <<else>> Quickly she attempts to unfasten her shorts but fails to do so before having to push out <<if $slaves[$i].broodmother > 0>><<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby<<else>>her bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>><</if>>. As she crowns into her shorts, she can't hide the wetness and bulge between her <<if $slaves[$i].mpreg == 1>>buttocks<<else>>legs<</if>>, <<if $slaves[$i].fetish == "humiliation">>but that only makes it more exciting<<else>>so she bears with it<</if>>. With a little help, she manages to escape her clothes and finish giving birth. + <</if>> <<case "a biyelgee costume">> <<if $slaves[$i].fetish == "mindbroken">>