From f0f3fc0f0c46d38b53061b54516b7d992c8655a4 Mon Sep 17 00:00:00 2001 From: Pregmodder <pregmodder@gmail.com> Date: Sat, 11 Feb 2023 13:51:46 -0500 Subject: [PATCH] fix + isPlayerHorny scope change --- CHANGELOG.md | 3 +++ src/endWeek/economics/persBusiness.js | 4 ++-- .../player/prLongTermPhysicalEffects.js | 2 +- src/endWeek/saLongTermPhysicalEffects.js | 2 +- src/js/SlaveState.js | 4 ++++ src/js/statsChecker/statsChecker.js | 20 +++++++++++++++++++ src/js/utilsPC.js | 20 ------------------- src/player/desc/pLongBoobs.js | 2 +- src/player/desc/pLongCrotch.js | 2 +- src/player/personalAttentionSelect.js | 2 +- 10 files changed, 34 insertions(+), 27 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fe5624e8a8..f9cefc4a4e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ## Unreleased * added isVirile() function +* added isHorny() function (check for sources of constant arousal) +* added aggrosperm, livestock, and progenitor gene mods +* added potency genetic quirk * vasectomies cut sperm release * fixes diff --git a/src/endWeek/economics/persBusiness.js b/src/endWeek/economics/persBusiness.js index d0abc67dccc..f7ec3e84077 100644 --- a/src/endWeek/economics/persBusiness.js +++ b/src/endWeek/economics/persBusiness.js @@ -14,7 +14,7 @@ App.EndWeek.personalBusiness = function() { let upgradeCount; let dataGain; let hindranceMod = isHinderedDegree(V.PC); - const nymphoMod = isPlayerHorny(V.PC) ? .75 : 1; + const nymphoMod = isHorny(V.PC) ? .75 : 1; const {girlP} = getPronouns(V.PC).appendSuffix("P"); if (V.useTabs === 0) { App.UI.DOM.appendNewElement("h2", el, `Personal Business`); @@ -677,7 +677,7 @@ App.EndWeek.personalBusiness = function() { let soldVirginity = false; let clients = random(2, 4); // This could probably be replaced by .need? - if (isPlayerHorny(V.PC)) { + if (isHorny(V.PC)) { clients *= 3; } else { clients += (Math.round(V.PC.energy / 20) - 1); diff --git a/src/endWeek/player/prLongTermPhysicalEffects.js b/src/endWeek/player/prLongTermPhysicalEffects.js index b4b994b53ab..85635ff42bf 100644 --- a/src/endWeek/player/prLongTermPhysicalEffects.js +++ b/src/endWeek/player/prLongTermPhysicalEffects.js @@ -930,7 +930,7 @@ App.EndWeek.Player.longTermPhysicalEffects = function(PC = V.PC) { } function bellyEffects() { - if (PC.pregAdaptation > 40 && (PC.belly < 5000 && PC.preg < 1 && PC.pregWeek === 0) && PC.geneticQuirks.uterineHypersensitivity !== 2 && PC.geneMods.livestock !== 1 && PC.geneMods.geneMods.progenitor !== 1) { + if (PC.pregAdaptation > 40 && (PC.belly < 5000 && PC.preg < 1 && PC.pregWeek === 0) && PC.geneticQuirks.uterineHypersensitivity !== 2 && PC.geneMods.livestock !== 1 && PC.geneMods.progenitor !== 1) { if (PC.pregAdaptation > 1001) { // TODO: Compact, or expand useless branches below PC.pregAdaptation--; } else if (PC.pregAdaptation >= 751 && PC.pregAdaptation < 1000) { diff --git a/src/endWeek/saLongTermPhysicalEffects.js b/src/endWeek/saLongTermPhysicalEffects.js index 56da9882819..bd824d82c78 100644 --- a/src/endWeek/saLongTermPhysicalEffects.js +++ b/src/endWeek/saLongTermPhysicalEffects.js @@ -534,7 +534,7 @@ App.SlaveAssignment.longTermPhysicalEffects = function saLongTermPhysicalEffects const pa = V.personalAttention.slaves.find((s) => s.ID === slave.ID); // This can probably be improved. if (pa.objective === "spar") { if (canWalk(V.PC) && canWalk(slave) && hasAnyArms(V.PC) && hasAnyArms(slave) && canSee(slave) && slave.fetish !== "mindbroken") { - if (isPlayerHorny(V.PC)) { + if (isHorny(V.PC)) { if (slave.energy > 95 || slave.aphrodisiacs > 0 || slave.inflationType === "aphrodisiac") { slave.need = 0; } diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js index d34bd27eee8..cb7b4bbd0a9 100644 --- a/src/js/SlaveState.js +++ b/src/js/SlaveState.js @@ -1401,6 +1401,10 @@ App.Entity.SlaveState = class SlaveState { * See Pregnancy Control section for more. */ this.pregType = 0; + /** + * For function compatibility. + */ + this.pregMood = 0; /** * How adapted a slave's body is to being pregnant. 1 pregAdaption supports 1000cc of pregnancy. A normal singleton pregnancy is about 15 pregAdaption. */ diff --git a/src/js/statsChecker/statsChecker.js b/src/js/statsChecker/statsChecker.js index 2279b4449ee..00fb514fe54 100644 --- a/src/js/statsChecker/statsChecker.js +++ b/src/js/statsChecker/statsChecker.js @@ -1175,3 +1175,23 @@ globalThis.milkFlavor = function(slave) { globalThis.canBeDeflowered = function(slave) { return (slave.vagina === 0 && canDoVaginal(slave)) || (slave.anus === 0 && canDoAnal(slave)); }; + +/** + * A consolidated function for checking if an actor is currently aroused. + * @param {App.Entity.HumanState} actor + * @returns {boolean} + */ +globalThis.isHorny = function(actor) { + return ((actor.prostate > 0 && actor.preg > 0 && actor.preg > actor.pregData.normalBirth * .75) || + (actor.preg > 0 && actor.preg > actor.pregData.normalBirth * .66 && actor.pregMood === 2) || + (actor.geneticQuirks.uterineHypersensitivity === 2 && + (actor.bellyPreg >= 10000) || + (actor.belly > (actor.pregAdaptation * 1000)) || + (actor.wombImplant === "restraint" && actor.belly >= 400000) + ) || + // (actor.need > 0) || + (actor.energy > 95) || + (actor.aphrodisiacs > 0) || + (actor.inflationType === "aphrodisiac") || + (actor.drugs === "priapism agents")); +}; diff --git a/src/js/utilsPC.js b/src/js/utilsPC.js index f7612fea45d..abde58fc22d 100644 --- a/src/js/utilsPC.js +++ b/src/js/utilsPC.js @@ -942,26 +942,6 @@ globalThis.canEatFood = function(actor) { return true; }; -/** - * A consolidated function for checking if the player is currently aroused. - * @param {App.Entity.PlayerState} actor - * @returns {boolean} - */ -globalThis.isPlayerHorny = function(actor) { - return ((actor.prostate > 0 && actor.preg > 0 && actor.preg > actor.pregData.normalBirth * .75) || - (actor.preg > 0 && actor.preg > actor.pregData.normalBirth * .66 && actor.pregMood === 2) || - (actor.geneticQuirks.uterineHypersensitivity === 2 && - (actor.bellyPreg >= 10000) || - (actor.belly > (actor.pregAdaptation * 1000)) || - (actor.wombImplant === "restraint" && actor.belly >= 400000) - ) || - // (actor.need > 0) || - (actor.energy > 95) || - (actor.aphrodisiacs > 0) || - (actor.inflationType === "aphrodisiac") || - (actor.drugs === "priapism agents")); -}; - /** * Param takes "classic" PC careers, and then function checks data to see if PC has that classic career or a 4.0 equivalent. * @param {"wealth"|"escort"|"servant"|"gang"|"BlackHat"|"capitalist"|"mercenary"|"engineer"|"medicine"|"slaver"|"celebrity"|"arcology owner"} category diff --git a/src/player/desc/pLongBoobs.js b/src/player/desc/pLongBoobs.js index a15309f5834..753223aa33d 100644 --- a/src/player/desc/pLongBoobs.js +++ b/src/player/desc/pLongBoobs.js @@ -183,7 +183,7 @@ App.Desc.Player.boobs = function(PC = V.PC) { function nipples() { const r = []; - if (isPlayerHorny(PC)) { + if (isHorny(PC)) { switch (PC.nipples) { case "tiny": r.push(`You have stiff little nubs ${areolae()}.`); diff --git a/src/player/desc/pLongCrotch.js b/src/player/desc/pLongCrotch.js index ddea77aad0a..64e17f6304d 100644 --- a/src/player/desc/pLongCrotch.js +++ b/src/player/desc/pLongCrotch.js @@ -3,7 +3,7 @@ App.Desc.Player.crotch = function(PC = V.PC) { const {girlP} = getPronouns(PC).appendSuffix('P'); const legs = hasBothLegs(PC) ? "legs" : "leg"; const hands = hasBothArms(PC) ? "hands" : "hand"; - const isAroused = isPlayerHorny(PC); + const isAroused = isHorny(PC); const virile = isVirile(PC); const cumTotal = (cumAmount(PC) / 70) || 0; const foreskinRatio = (PC.foreskin - PC.dick); diff --git a/src/player/personalAttentionSelect.js b/src/player/personalAttentionSelect.js index b62082d7ab4..57e5b4694cc 100644 --- a/src/player/personalAttentionSelect.js +++ b/src/player/personalAttentionSelect.js @@ -579,7 +579,7 @@ App.UI.Player.personalAttention = function() { // HORNY /* - if (isPlayerHorny(V.PC)) { + if (isHorny(V.PC)) { links.push(attentionLink(i, `Fuck ${him} senseless`, "ravish")); } */ -- GitLab