diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b9326fcdb3f42a10095c153bd6490a31dfde781..eca844ae51d43ecb0cce3686251bc8e3f7354bf3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ## Unreleased +* RA simple mode +* RA can now report which rule made a change +* New Game++ (Start in new arcology at same week.) +* Elohiem's webGL art update 9 +* webGL animations +* added event peFoodplay +* fixes + ## 0.10.7.1-4.0.0-alpha.17 - 2022-06-09 * PC endWeek effects added diff --git a/js/003-data/gameVariableData.js b/js/003-data/gameVariableData.js index 7ed17b54ab1c8d93f7d154deef639d0de56d59af..702c3e39567c20137feec47fc6509f4b7e43307d 100644 --- a/js/003-data/gameVariableData.js +++ b/js/003-data/gameVariableData.js @@ -1087,6 +1087,7 @@ App.Data.resetOnNGPlus = { cloningSystem: 0, /** @type {FC.Bool} */ geneticFlawLibrary: 0, + consumerDrugs: 0, projectN: App.Data.projectN, bodyPuristRiot: 0, diff --git a/src/data/backwardsCompatibility/backwardsCompatibility.js b/src/data/backwardsCompatibility/backwardsCompatibility.js index 735a0af0a32a30c336e58734ce0f217beef086c7..d254e43bd408dae14f835665e4eac6e893c1f8f1 100644 --- a/src/data/backwardsCompatibility/backwardsCompatibility.js +++ b/src/data/backwardsCompatibility/backwardsCompatibility.js @@ -1362,11 +1362,9 @@ App.Update.globalVariables = function(node) { } // Cosmetic Surgery Suite - if (!(typeof V.pSurgery === 'object' && V.pSurgery !== null)) { - V.pSurgery = {}; - } - V.pSurgery.state = V.pSurgery.state || 1; - V.pSurgery.cooldown = V.pSurgery.cooldown || V.playerSurgery || 0; + V.pSurgery = V.pSurgery || {}; + V.pSurgery.state = V.pSurgery.state || 0; + V.pSurgery.cooldown = V.playerSurgery || V.pSurgery.cooldown || 0; V.pSurgery.nursePreg = V.pSurgery.nursePreg || 0; V.pSurgery.disloyal = V.pSurgery.disloyal || 0; V.pSurgery.cost = V.pSurgery.cost || 0; @@ -2193,14 +2191,12 @@ App.Update.oldVersions = function(node) { newPC.counter.slavesKnockedUp = V.PC.slavesKnockedUp; newPC.counter.storedCum = V.PC.storedCum; newPC.sexualEnergy = V.PC.sexualEnergy; - newPC.staminaPills = V.PC.staminaPills; newPC.preg = V.PC.preg; newPC.pregType = V.PC.pregType; newPC.pregWeek = V.PC.pregWeek; newPC.pregKnown = V.PC.pregKnown; newPC.fertKnown = V.PC.fertKnown; newPC.fertPeak = V.PC.fertPeak; - newPC.fertDrugs = V.PC.fertDrugs; newPC.forcedFertDrugs = V.PC.forcedFertDrugs; newPC.belly = V.PC.belly; newPC.bellyPreg = V.PC.bellyPreg; diff --git a/src/endWeek/economics/personalNotes.js b/src/endWeek/economics/personalNotes.js index dc9f14c73c4e5bdb0a4b1032edda83445f186b80..14cfb95440b4314dc767d3b2cdce4cc87d9e5884 100644 --- a/src/endWeek/economics/personalNotes.js +++ b/src/endWeek/economics/personalNotes.js @@ -57,9 +57,13 @@ App.EndWeek.personalNotes = function() { if (V.useTabs === 1) { App.UI.DOM.appendNewElement("h2", el, `Drugs`); } - // r.push(App.EndWeek.Player.drugs()); - + r.push(App.EndWeek.Player.drugs()); + // Here or at the start? + if (V.useTabs === 1) { + App.UI.DOM.appendNewElement("h2", el, `Health`); + } + //r.push(App.EndWeek.Player.health()); App.Events.addParagraph(el, r); return el; diff --git a/src/endWeek/endWeek.js b/src/endWeek/endWeek.js index c89e7c90f63cc67feac142aab4152544489d876a..76bdbc1517a81d4ef97ff27b076cd6db3f64da36 100644 --- a/src/endWeek/endWeek.js +++ b/src/endWeek/endWeek.js @@ -237,14 +237,14 @@ globalThis.endWeek = (function() { } else if (V.PC.preg > 0) { V.PC.sexualEnergy -= 1; } else { - if (V.PC.fertDrugs === 1) { + if (V.PC.drugs === "fertility supplements") { V.PC.sexualEnergy++; } if (V.PC.forcedFertDrugs > 0) { V.PC.sexualEnergy += 2; } } - if (V.PC.staminaPills > 0) { + if (V.PC.drugs === "stamina enhancers") { V.PC.sexualEnergy += 2; } if (V.PC.preg > 0) { @@ -257,7 +257,6 @@ globalThis.endWeek = (function() { } else if (V.PC.belly > 500) { V.PC.belly *= 0.75; } - V.PC.fertDrugs = 0; } else if (V.PC.belly > 0) { if (V.PC.belly < 100) { V.PC.belly = 0; diff --git a/src/endWeek/player/prDiet.js b/src/endWeek/player/prDiet.js index 6e5df1df5a95dc9babade6840400ba5943ac8c21..0c48594c9050a3ac2524abd5d714bfd4eaeedc6c 100644 --- a/src/endWeek/player/prDiet.js +++ b/src/endWeek/player/prDiet.js @@ -84,6 +84,20 @@ App.EndWeek.Player.diet = function(PC = V.PC) { PC.balls += 1; } break; + case "medicinal": + r.push(`You stick to an unusual diet full of exotic foods and drinks known for <span class="health inc">fortifying health, healing ailments, and cleansing the body.</span>`); + if (canTaste(PC)) { + r.push(`It is surprisingly pleasant, if a bit on the expensive side.`); + } else { + r.push(`It is rather expensive, so you wish you could actually taste it.`); + } + if (PC.health.condition <= 90) { + improveCondition(PC, 2); + } + if (PC.chem > 1) { + PC.chem--; + } + break; } } diff --git a/src/endWeek/player/prLongTermEffects.js b/src/endWeek/player/prLongTermEffects.js index 3584f0d0eb0954fd0c422536c42696679d71f2b4..332b8ae113553d15c00f0cdd3b9ab90e1033eb6e 100644 --- a/src/endWeek/player/prLongTermEffects.js +++ b/src/endWeek/player/prLongTermEffects.js @@ -267,7 +267,7 @@ App.EndWeek.Player.longTermEffects = function(PC = V.PC) { } function hormoneBalance() { - const selfManufactured = false; // Once a means to buy the recipes is added, this will become a ternary. + const selfManufactured = V.consumerDrugs; const hormonePower = selfManufactured ? V.hormoneUpgradePower : 1; // Prescribed ones are better to match their base price. if (PC.diet === "XX") { PC.hormoneBalance += 4; @@ -561,6 +561,7 @@ App.EndWeek.Player.longTermEffects = function(PC = V.PC) { if (PC.pubertyXX === 0) { if (PC.physicalAge >= PC.pubertyAgeXX) { PC.pubertyXX = 1; + // in the future, improve this to hide puberty up until period? r.push(`After several days of unrelenting pain in your stomach, you have your first period.`); if (PC.genes === "XX") { r.push(`<span class="puberty">You're a woman now.</span>`); @@ -928,6 +929,9 @@ App.EndWeek.Player.longTermEffects = function(PC = V.PC) { if (PC.inflationType === "aphrodisiac") { deathSeed -= (100 * PC.inflation); } + if (PC.diet === "medicinal") { + deathSeed += 200; + } if (random(1, 1000) > (600 + deathSeed)) { planDeath(PC, "lowHealth"); } diff --git a/src/endWeek/player/prLongTermPhysicalEffects.js b/src/endWeek/player/prLongTermPhysicalEffects.js index 2692c449a2aec41f6f5963407cb33df486983cc1..3d7dd83b48438057f08a18d6d279db87615821f6 100644 --- a/src/endWeek/player/prLongTermPhysicalEffects.js +++ b/src/endWeek/player/prLongTermPhysicalEffects.js @@ -33,7 +33,9 @@ App.EndWeek.Player.longTermPhysicalEffects = function(PC = V.PC) { boobsEffects(); // Moved up from middle of the mobility and oversized asset set of text. bellyEffects(); // Moved up from middle of the mobility and oversized asset set of text. // player mobility function goes here. - healthBlips(); + if (PC.diet !== "medicinal") { + healthBlips(); + } return r.join(" "); @@ -391,19 +393,23 @@ App.EndWeek.Player.longTermPhysicalEffects = function(PC = V.PC) { if (PC.physicalAge >= 45) { if (PC.physicalAge >= 70) { if (PC.health.condition >= -90) { - if (PC.diet !== "healthy" || !canEatFood(PC) || PC.chem > 0) { - if (PC.physicalAge - 30 > random(1, 100)) { - r.push(`Your advanced age comes hand in hand with increased health complications. <span class="health dec">This was not a good week for you.</span>`); - healthDamage(PC, 10); + if (PC.diet !== "medicinal") { + if (PC.diet !== "healthy" || !canEatFood(PC) || PC.chem > 0) { + if (PC.physicalAge - 30 > random(1, 100)) { + r.push(`Your advanced age comes hand in hand with increased health complications. <span class="health dec">This was not a good week for you.</span>`); + healthDamage(PC, 10); + } } } } } else { if (PC.health.condition > 20) { - if (PC.diet !== "healthy" || !canEatFood(PC) || PC.chem > 0) { - if (PC.physicalAge - 30 > random(1, 100)) { - r.push(`This was a rough week for you. It seems your <span class="health dec">age</span> is catching up to you.`); - healthDamage(PC, 10); + if (PC.diet !== "medicinal") { + if (PC.diet !== "healthy" || !canEatFood(PC) || PC.chem > 0) { + if (PC.physicalAge - 30 > random(1, 100)) { + r.push(`This was a rough week for you. It seems your <span class="health dec">age</span> is catching up to you.`); + healthDamage(PC, 10); + } } } } diff --git a/src/events/intro/introSummary.js b/src/events/intro/introSummary.js index 6e4884ccf4ffd2691b9c33ad6b73850b4b11fef8..ea2c4785bd3f20a743ccd750b10431bd39aaa529 100644 --- a/src/events/intro/introSummary.js +++ b/src/events/intro/introSummary.js @@ -184,6 +184,7 @@ App.Intro.summary = function() { case "medicine": V.PC.skill.medicine = 100; V.PC.muscles = 0; + V.consumerDrugs = 1; break; case "medical assistant": V.PC.intelligenceImplant = 15; diff --git a/src/js/economyJS.js b/src/js/economyJS.js index 47d851ed85dfa371232c53b927ddde6569c665d6..945903e92babb78dac47f807dec7ec5567c6cbf5 100644 --- a/src/js/economyJS.js +++ b/src/js/economyJS.js @@ -880,6 +880,8 @@ globalThis.calculateCosts = (function() { costs += 75; } else if (V.PC.diet === 'exotic') { costs += 200; + } else if (V.PC.diet === 'medicinal') { + costs += 250; } else if (V.PC.diet === 'weaning') { costs += 500; } @@ -892,14 +894,9 @@ globalThis.calculateCosts = (function() { if (V.PC.preg === -1) { costs += 25; - } else if (V.PC.fertDrugs === 1) { - costs += 50; } else if (V.PC.preg >= 16) { costs += 100; } - if (V.PC.staminaPills === 1) { - costs += 50; - } return costs; } diff --git a/src/player/electiveSurgery.js b/src/player/electiveSurgery.js index 07d9f734feb0edb03414843ba5f3bab598b6ca37..4aaaf4f2f8f16eea95d35bce44c6c822cde0af24 100644 --- a/src/player/electiveSurgery.js +++ b/src/player/electiveSurgery.js @@ -84,7 +84,7 @@ App.UI.electiveSurgery = function() { if (V.pSurgery.nursePreg > 0) { nurse.preg = V.pSurgery.nursePreg; nurse.pregType = 1; - setBellySize(nurse); + SetBellySize(nurse); } if (V.pSurgery.state > 1) { diff --git a/src/player/js/PlayerState.js b/src/player/js/PlayerState.js index a62186dcdf3c14b92e965b1d826d98e05477b88f..98dc06ca5fca580d5580cd9558710d475d6ee3b4 100644 --- a/src/player/js/PlayerState.js +++ b/src/player/js/PlayerState.js @@ -1957,18 +1957,10 @@ App.Entity.PlayerState = class PlayerState { * 0: stable; 1: gaining; -1: losing */ this.weightDirection = 0; // exclusive minor player variables (probably) here - /** are you on fertility supplements - * - * 0: no; 1: yes */ - this.fertDrugs = 0; /** have you been drugged with fertility drugs * * 0: no; 1+: how many weeks they will remain in your system */ this.forcedFertDrugs = 0; - /** Are you taking pills to fuck more slaves each week? - * - * 0: no; 1: yes */ - this.staminaPills = 0; /** Player's coefficient of inbreeding */ this.inbreedingCoeff = 0; /** Controls if femPC lost virginity before or after taking over */ diff --git a/src/player/managePersonalAffairs.js b/src/player/managePersonalAffairs.js index 12ae09d1ca03adb53cdb1ec0da3e06eea02d06ea..3f8ade6c828069c8cc8a325a17f5fc20a6e9c568 100644 --- a/src/player/managePersonalAffairs.js +++ b/src/player/managePersonalAffairs.js @@ -868,6 +868,8 @@ App.UI.managePersonalAffairs = function() { text.push(`You are eating energy rich food and spending ${PC.muscles > 0 ? "extra " : ""}time in the gym.`); } else if (PC.diet === "exotic") { text.push(`You are eating exotic foods to boost your energy in bed.`); + } else if (PC.diet === "medicinal") { + text.push(`You are eating medicinal foods to ${PC.health.condition < 90 ? "better" : "solidify"} your health.`); } else if (PC.diet === "corrective") { text.push(`The automated feeder is controlling your portions in order to correct your weight.`); } else if (PC.diet === "cum production") { @@ -1069,6 +1071,16 @@ App.UI.managePersonalAffairs = function() { App.UI.DOM.replace(dietDiv, diet); })); } + if (PC.diet === "medicinal") { + links.push(App.UI.DOM.disabledLink(`Medicinal`, [ + `${onDiet}`, + ])); + } else { + links.push(App.UI.DOM.link(`Medicinal`, () => { + PC.diet = "medicinal"; + App.UI.DOM.replace(dietDiv, diet); + })); + } } text.push(App.UI.DOM.generateLinksStrip(links)); @@ -1079,23 +1091,521 @@ App.UI.managePersonalAffairs = function() { } function drugs() { - const staminaDrugsDiv = document.createElement("div"); + const hormonesDiv = document.createElement("div"); + const playerDrugsDiv = document.createElement("div"); const contraceptivesDiv = document.createElement("div"); const fertilityDrugsDiv = document.createElement("div"); App.UI.DOM.appendNewElement("h2", drugsDiv, `Drugs`); - drugsDiv.append(staminaDrugs()); + if (PC.hormones !== 0 && V.consumerDrugs !== 0) { + drugsDiv.append(hormones()); + } + drugsDiv.append(playerDrugs()); if (PC.vagina !== -1) { drugsDiv.append( contraceptives(), - fertilityDrugs(), + //fertilityDrugs(), ); } return drugsDiv; + function hormones() { + const linkDiv = App.UI.DOM.makeElement("div", null, ['indent']); + + App.UI.DOM.appendNewElement("h3", hormonesDiv, `Hormones`); + if (PC.hormones !== 0) { + hormonesDiv.append(`You are currently taking ${PC.hormones === 1 ? "female" : "male"} hormones.`); + if (V.consumerDrugs !== 0) { + linkDiv.append(App.UI.DOM.link(`Stop filling your prescription`, () => { + V.PC.hormones = 0; + App.UI.DOM.replace(drugsDiv, drugs); + })); + App.UI.DOM.appendNewElement("div", linkDiv, `You will need to visit your doctor to start a new prescription.`, ["indent", "note"]); + } else { + linkDiv.append(App.UI.DOM.link(`Stop taking them`, () => { + V.PC.hormones = 0; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + } else { + hormonesDiv.append(`You are not taking any hormones.`); + links.push(App.UI.DOM.link(`Male hormones`, () => { + V.PC.hormones = -1; + App.UI.DOM.replace(drugsDiv, drugs); + })); + links.push(App.UI.DOM.link(`Female hormones`, () => { + V.PC.hormones = 1; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + + hormonesDiv.append(linkDiv); + + return hormonesDiv; + } + + function playerDrugs() { + const consumerDrugsDiv = document.createElement("div"); + const slaveDrugsDiv = document.createElement("div"); + + if (PC.drugs !== "no drugs") { + playerDrugsDiv.append(`You are currently using ${PC.drugs}.`); + playerDrugsDiv.append(App.UI.DOM.link(`Stop taking them`, () => { + V.PC.drugs = "no drugs"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + if (["breast enhancers", "butt enhancers", "lip enhancers", "penis enlargers", "testicle enlargers", "fertility supplements"].includes(PC.drugs)) { + App.UI.DOM.appendNewElement("div", linkDiv, `You will need to visit your doctor to start a new prescription.`, ["indent", "note"]); + } + } else { + playerDrugsDiv.append(`You are not using any pharmaceutical drugs.`); + } + + App.UI.DOM.appendNewElement("h3", playerDrugsDiv, `Consumer-grade`); + + playerDrugsDiv.append(consumerDrugs()); + App.UI.DOM.appendNewElement("h3", playerDrugsDiv, `Slave-grade`); + playerDrugsDiv.append(slaveDrugs()); + + return playerDrugsDiv; + + function consumerDrugs() { + const text = []; + const links = []; + + if (PC.drugs !== "stamina enhancers") { + links.push(App.UI.DOM.link(`Stamina enhancers`, () => { + PC.drugs = "stamina enhancers"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + if (PC.drugs !== "appetite suppressors") { + links.push(App.UI.DOM.link(`Appetite suppressors`, () => { + PC.drugs = "appetite suppressors"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + + text.push(App.UI.DOM.generateLinksStrip(links)); + + App.Events.addNode(consumerDrugsDiv, text); + + return consumerDrugsDiv; + } + + function slaveDrugs() { + const text = []; + const links = []; + const arcology = V.arcologies[0]; + + if (arcology.FSSlaveProfessionalismResearch === 1) { + if (PC.drugs !== "psychostimulants") { + if (canImproveIntelligence(slave)) { + links.push(App.UI.DOM.link(`Psychostimulants`, () => { + PC.drugs = "psychostimulants"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } else { + links.push(App.UI.DOM.disabledLink(`Psychostimulants`, [ + `Cannot improve intelligence further this way`, + ])); + } + } + } + + if (arcology.FSAssetExpansionistResearch === 1) { + if (PC.drugs !== "hyper breast injections") { + if (PC.boobs < 50000) { + links.push(App.UI.DOM.link(`Hyper breast injections`, () => { + PC.drugs = "hyper breast injections"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } else { + links.push(App.UI.DOM.disabledLink(`Hyper breast injections`, [ + `Breasts are too big for the drugs to work`, + ])); + } + } + } + if (PC.drugs !== "breast injections" && PC.drugs !== "intensive breast injections") { + if (PC.boobs < 50000) { + if (PC.drugs !== "breast injections") { + links.push(App.UI.DOM.link(`Breast injections`, () => { + PC.drugs = "breast injections"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + if (PC.drugs !== "intensive breast injections") { + links.push(App.UI.DOM.link(`Intensive breast injections`, () => { + PC.drugs = "intensive breast injections"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + } else { + links.push(App.UI.DOM.disabledLink(`Breast injections`, [ + `Breasts are too big for the drugs to work`, + ])); + } + } + if (arcology.FSSlimnessEnthusiastResearch === 1) { + if (PC.drugs !== "breast redistributors") { + if ((PC.boobs - PC.boobsImplant - PC.boobsMilk) > 100) { + links.push(App.UI.DOM.link(`Breast redistributors`, () => { + PC.drugs = "breast redistributors"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } else { + links.push(App.UI.DOM.disabledLink(`Breast redistributors`, [ + `Already flat enough`, + ])); + } + } + } + + if (V.dispensary) { + if (PC.drugs !== "nipple enhancers") { + if (["inverted", "partially inverted", "cute", "tiny", "puffy", "flat"].includes(PC.nipples)) { + links.push(App.UI.DOM.link(`Nipple enhancers`, () => { + PC.drugs = "nipple enhancers"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } else if (PC.nipples === "huge") { + links.push(App.UI.DOM.disabledLink(`Nipple enhancers`, [ + `Nipples cannot get any larger`, + ])); + } else { + links.push(App.UI.DOM.disabledLink(`Nipple enhancers`, [ + `Will not affect your nipples`, + ])); + } + } + } + if (arcology.FSSlimnessEnthusiastResearch === 1) { + if (PC.drugs !== "nipple atrophiers") { + if (PC.nipples === "huge" || PC.nipples === "puffy" || PC.nipples === "cute") { + links.push(App.UI.DOM.link(`Nipple atrophiers`, () => { + PC.drugs = "nipple atrophiers"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } else { + links.push(App.UI.DOM.disabledLink(`Nipple atrophiers`, [ + `Will not affect your nipples`, + ])); + } + } + } + + if (arcology.FSAssetExpansionistResearch === 1) { + if (PC.drugs !== "hyper butt injections") { + if (PC.butt < 20) { + links.push(App.UI.DOM.link(`Hyper butt injections`, () => { + PC.drugs = "hyper butt injections"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } else { + links.push(App.UI.DOM.disabledLink(`Hyper butt injections`, [ + `Ass cannot grow larger`, + ])); + } + } + } + if (PC.drugs !== "butt injections" && PC.drugs !== "intensive butt injections") { + if (PC.butt < 9) { + if (PC.drugs !== "butt injections") { + links.push(App.UI.DOM.link(`Butt injections`, () => { + PC.drugs = "butt injections"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + if (PC.drugs !== "intensive butt injections") { + links.push(App.UI.DOM.link(`Intensive butt injections`, () => { + PC.drugs = "intensive butt injections"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + } else { + links.push(App.UI.DOM.disabledLink(`Butt injections`, [ + `Ass is too big for the drugs to work`, + ])); + } + } + if (arcology.FSSlimnessEnthusiastResearch === 1) { + if (PC.drugs !== "butt redistributors") { + if (PC.butt - PC.buttImplant > 0) { + links.push(App.UI.DOM.link(`Butt redistributors`, () => { + PC.drugs = "butt redistributors"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } else { + links.push(App.UI.DOM.disabledLink(`Butt redistributors`, [ + `No ass left to lose`, + ])); + } + } + } + + if (V.dispensary) { + if (PC.drugs !== "lip injections") { + if (PC.lips <= 95 || (PC.lips <= 85 && V.seeExtreme !== 1)) { + links.push(App.UI.DOM.link(`lip injections`, () => { + PC.drugs = "lip injections"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } else { + links.push(App.UI.DOM.disabledLink(`lip injections`, [ + `Lips cannot grow larger`, + ])); + } + } + } + if (arcology.FSSlimnessEnthusiastResearch === 1) { + if (PC.drugs !== "lip atrophiers") { + if (PC.lips - PC.lipsImplant > 0) { + links.push(App.UI.DOM.link(`Lip atrophiers`, () => { + PC.drugs = "lip atrophiers"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } else { + links.push(App.UI.DOM.disabledLink(`Lip atrophiers`, [ + `No lip left to give`, + ])); + } + } + } + + if (arcology.FSAssetExpansionistResearch === 1) { + if (PC.drugs !== "hyper penis enhancement") { + if (PC.dick > 0) { + if (PC.dick < 31) { + links.push(App.UI.DOM.link(`Hyper penis enhancement`, () => { + PC.drugs = "hyper penis enhancement"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } else { + links.push(App.UI.DOM.disabledLink(`Hyper penis enhancement`, [ + `Dick cannot grow larger`, + ])); + } + } else { + if (PC.clit < 5) { + links.push(App.UI.DOM.link(`Hyper clitoris enhancement`, () => { + PC.drugs = "hyper penis enhancement"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } else { + links.push(App.UI.DOM.disabledLink(`Hyper clitoris enhancement`, [ + `Clit cannot grow larger`, + ])); + } + } + } + } + if (PC.drugs !== "penis enhancement" && PC.drugs !== "intensive penis enhancement") { + if (PC.dick > 0) { + if (PC.dick < 10) { + if (PC.drugs !== "penis enhancement") { + links.push(App.UI.DOM.link(`Penis enhancement`, () => { + PC.drugs = "penis enhancement"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + if (PC.drugs !== "intensive penis enhancement") { + links.push(App.UI.DOM.link(`Intensive penis enhancement`, () => { + PC.drugs = "intensive penis enhancement"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + } else { + links.push(App.UI.DOM.disabledLink(`Penis enhancement`, [ + `Dick is too big for the drugs to work`, + ])); + } + } else { + if (PC.clit < 5) { + if (PC.drugs !== "penis enhancement") { + links.push(App.UI.DOM.link(`Clitoris enhancement`, () => { + PC.drugs = "penis enhancement"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + if (PC.drugs !== "intensive penis enhancement") { + links.push(App.UI.DOM.link(`Intensive clitoris enhancement`, () => { + PC.drugs = "intensive penis enhancement"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + } else { + links.push(App.UI.DOM.disabledLink(`Penis enhancement`, [ + `Clit cannot grow larger`, + ])); + } + } + } + if (arcology.FSSlimnessEnthusiastResearch === 1) { + if (PC.drugs !== "penis atrophiers") { + if (PC.dick > 1) { + links.push(App.UI.DOM.link(`Penile atrophiers`, () => { + PC.drugs = "penis atrophiers"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } else { + links.push(App.UI.DOM.disabledLink(`Penile atrophiers`, [ + `Dick cannot possibly get smaller`, + ])); + } + } + if (PC.drugs !== "clitoris atrophiers") { + if (PC.clit > 0) { + links.push(App.UI.DOM.link(`Clitoral atrophiers`, () => { + PC.drugs = "clitoris atrophiers"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } else { + links.push(App.UI.DOM.disabledLink(`Clitoral atrophiers`, [ + `Clit cannot possibly get smaller`, + ])); + } + } + } + if (PC.drugs !== "priapism agents") { + if (PC.dick.isBetween(0, 11) && !canAchieveErection(PC)) { + links.push(App.UI.DOM.link(`Priapism agents`, () => { + PC.drugs = "priapism agents"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + } + + if (PC.balls > 0) { + if (arcology.FSAssetExpansionistResearch === 1) { + if (PC.drugs !== "hyper testicle enhancement") { + links.push(App.UI.DOM.link(`Hyper testicle enhancement`, () => { + PC.drugs = "hyper testicle enhancement"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + } + if (PC.drugs !== "testicle enhancement" && PC.drugs !== "intensive testicle enhancement") { + links.push(App.UI.DOM.link(`Testicle enhancement`, () => { + PC.drugs = "testicle enhancement"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + links.push(App.UI.DOM.link(`Intensive testicle enhancement`, () => { + PC.drugs = "intensive testicle enhancement"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + } + + if (PC.drugs !== "fertility drugs") { + links.push(App.UI.DOM.link(`Fertility drugs`, () => { + PC.drugs = "fertility drugs"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + if (PC.drugs !== "super fertility drugs") { + if (V.seeHyperPreg === 1 && V.superFertilityDrugs === 1) { + links.push(App.UI.DOM.link(`Super fertility drugs`, () => { + PC.drugs = "super fertility drugs"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + } + + if (V.precociousPuberty === 1 && V.pubertyHormones === 1) { + if (PC.balls > 0 && PC.pubertyXY === 0) { + if (PC.drugs !== "male hormone injections") { + links.push(App.UI.DOM.link(`XY injections`, () => { + PC.drugs = "male hormone injections"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + } + if ((PC.ovaries === 1 || PC.mpreg === 1) && PC.pubertyXX === 0) { + if (PC.drugs !== "female hormone injections") { + links.push(App.UI.DOM.link(`XX injections`, () => { + PC.drugs = "female hormone injections"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + } + } + if (PC.drugs !== "hormone blockers") { + links.push(App.UI.DOM.link(`Hormone blockers`, () => { + PC.drugs = "hormone blockers"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + if (PC.drugs !== "hormone enhancers") { + links.push(App.UI.DOM.link(`Hormone enhancers`, () => { + PC.drugs = "hormone enhancers"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + + if (arcology.FSSlimnessEnthusiastResearch === 1) { + if (PC.drugs !== "labia atrophiers") { + if (PC.labia > 0) { + links.push(App.UI.DOM.link(`Labia atrophiers`, () => { + PC.drugs = "labia atrophiers"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + } + } + if (V.growthStim === 1) { + if (PC.drugs !== "growth stimulants") { + if (canImproveHeight(PC)) { + links.push(App.UI.DOM.link(`Growth stimulants`, () => { + PC.drugs = "growth stimulants"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } else { + links.push(App.UI.DOM.disabledLink(`Growth stimulants`, [ + `Your body just cannot grow any more`, + ])); + } + } + } + links.push(App.UI.DOM.link(`Steroids`, () => { + PC.drugs = "steroids"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + if (PC.boobs > 250 && PC.boobShape !== "saggy" && V.purchasedSagBGone === 1) { + if (PC.drugs !== "sag-B-gone") { + links.push(App.UI.DOM.link(`Sag-B-Gone breast lifting cream`, () => { + PC.drugs = "sag-B-gone"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } + } + if (arcology.FSYouthPreferentialistResearch === 1) { + if (PC.drugs !== "anti-aging cream") { + if (PC.visualAge > 18) { + links.push(App.UI.DOM.link(`Anti-aging cream`, () => { + PC.drugs = "anti-aging cream"; + App.UI.DOM.replace(drugsDiv, drugs); + })); + } else { + links.push(App.UI.DOM.disabledLink(`Anti-aging cream`, [ + `Cream alone can only get you so far`, + ])); + } + } + } + + text.push(App.UI.DOM.generateLinksStrip(links)); + + App.Events.addNode(slaveDrugsDiv, text); + + return slaveDrugsDiv; + } + } + + /* function staminaDrugs() { const linkDiv = App.UI.DOM.makeElement("div", null, ['indent']); @@ -1119,6 +1629,7 @@ App.UI.managePersonalAffairs = function() { return staminaDrugsDiv; } + */ function contraceptives() { const text = []; @@ -1180,6 +1691,7 @@ App.UI.managePersonalAffairs = function() { return contraceptivesDiv; } + /* function fertilityDrugs() { const text = []; const links = []; @@ -1239,6 +1751,7 @@ App.UI.managePersonalAffairs = function() { return fertilityDrugsDiv; } + */ } function lactation() {