From 56b3cac79be4ed9e0c5d8ee79ba7324727f05a4d Mon Sep 17 00:00:00 2001 From: Pregmodder <pregmodder@gmail.com> Date: Sun, 23 Jun 2024 15:28:33 -0400 Subject: [PATCH 1/2] bunch of fixes --- src/endWeek/reports/clinicReport.js | 1 + src/endWeek/saLongTermMentalEffects.js | 4 +- src/endWeek/saRules.js | 6 +- src/endWeek/saRulesFunctions.js | 24 ++++---- src/events/JE/jeSlaveDisputeSlaveTraining.js | 1 + src/events/RE/reMalefactor.js | 1 + src/events/scheduled/seCoursing.js | 1 + src/js/health.js | 2 +- src/js/vignettes.js | 56 ++++++++++--------- .../specificMarkets/prestigiousSlave.js | 2 +- src/npc/generate/generateMarketSlave.js | 2 + src/npc/interaction/fFeelings.js | 16 ++++-- src/npc/interaction/passage/matchmaking.js | 15 ++--- src/player/managePersonalAffairs.js | 2 +- 14 files changed, 77 insertions(+), 56 deletions(-) diff --git a/src/endWeek/reports/clinicReport.js b/src/endWeek/reports/clinicReport.js index ac734e45f26..0d4e96c7269 100644 --- a/src/endWeek/reports/clinicReport.js +++ b/src/endWeek/reports/clinicReport.js @@ -323,6 +323,7 @@ App.EndWeek.clinicReport = function() { case "Slimness Enthusiast": case "Statuesque Glorification": case "Youth Preferentialist": + case "Neo-Imperialist": slave.rules.living = "luxurious"; break; case "Arabian Revivalist": diff --git a/src/endWeek/saLongTermMentalEffects.js b/src/endWeek/saLongTermMentalEffects.js index 08a60faf0af..11e0cbac226 100644 --- a/src/endWeek/saLongTermMentalEffects.js +++ b/src/endWeek/saLongTermMentalEffects.js @@ -1019,10 +1019,10 @@ App.SlaveAssignment.longTermMentalEffects = function saLongTermMentalEffects(sla } } else if (slave.behavioralFlaw === BehavioralFlaw.HATESWOMEN) { if (slave.fetish === Fetish.PREGNANCY) { - r.push(`${He} dislikes the company of women, but fetishizes pregnancy; ${he} decides that women, with their motherly hips and fertile cunts, can't be <i>that<i> bad, and <span class="flaw break">gets over ${his} hatred.</span>`); + r.push(`${He} dislikes the company of women, but fetishizes pregnancy; ${he} decides that women, with their motherly hips and fertile cunts, can't be <i>that</i> bad, and <span class="flaw break">gets over ${his} hatred.</span>`); slave.behavioralFlaw = BehavioralFlaw.NONE; } else if (slave.fetish === Fetish.CUMSLUT) { - r.push(`${He} dislikes the company of women and has a real oral fixation; ${he} decides that women, with their soft, kissable lips can't be <i>that<i> bad, and <span class="flaw break">gets over ${his} hatred.</span>`); + r.push(`${He} dislikes the company of women and has a real oral fixation; ${he} decides that women, with their soft, kissable lips can't be <i>that</i> bad, and <span class="flaw break">gets over ${his} hatred.</span>`); slave.behavioralFlaw = BehavioralFlaw.NONE; } else if (slave.attrXX > 85) { r.push(`${He} dislikes the company of women but likes fucking them; ${he} gets used to putting up with girls to get into their pants, and <span class="flaw break">gets over ${his} hatred.</span>`); diff --git a/src/endWeek/saRules.js b/src/endWeek/saRules.js index 2627555191c..3aa9c1a768d 100644 --- a/src/endWeek/saRules.js +++ b/src/endWeek/saRules.js @@ -710,13 +710,17 @@ App.SlaveAssignment.rules = function(slave) { case "Gender Fundamentalist": case "Gender Radicalist": case "Hedonistic": + case "Intellectual Dependency": case "Maturity Preferentialist": case "Paternalist": + case "Petite Admiration": case "Repopulationist": case "Slimness Enthusiast": + case "Statuesque Glorification": case "Youth Preferentialist": case "Neo-Imperialist": - r.push(`${He} loves ${his} stay in ${V.clinicName} and almost wishes it didn't have to end.`); + r.push(`${He} <span class="hotpink">loves ${his} stay</span> in ${V.clinicName} and almost wishes it didn't have to end.`); + slave.devotion += 1; break; case "Arabian Revivalist": case "Aztec Revivalist": diff --git a/src/endWeek/saRulesFunctions.js b/src/endWeek/saRulesFunctions.js index 0b8be7a4db4..b5037478ab5 100644 --- a/src/endWeek/saRulesFunctions.js +++ b/src/endWeek/saRulesFunctions.js @@ -653,11 +653,12 @@ App.EndWeek.Rules.rapeFetish = function(slave) { he, him, his } = getPronouns(slave); const who = (slave.rules.release.slaves === 1) ? "other slaves" : `${his} family`; + const familyOnly = slave.rules.release.slaves !== 1; /* should be the only two choices if we get here */ if (slave.fetishKnown === 1 && slave.fetishStrength > 60) { if (slave.fetish === Fetish.SUBMISSIVE) { el.append(`plead that ${who} fuck ${him}. `); - if (V.seeStretching === 1 && App.EndWeek.saVars.averageDick > 4) { + if (V.seeStretching === 1 && App.EndWeek.saVars.averageDick > 4 && !familyOnly) { if (slave.anus.isBetween(0, 3) && canDoAnal(slave)) { if ((slave.anus * 40) - (App.EndWeek.saVars.averageDick * 5) < random(1, 100)) { App.UI.DOM.appendNewElement("span", el, `${His} asshole is loosened `, "lime"); @@ -716,7 +717,7 @@ App.EndWeek.Rules.rapeFetish = function(slave) { } } else if (slave.fetish === Fetish.BUTTSLUT && canDoAnal(slave)) { el.append(`demand that ${who} penetrate ${his} anus. `); - if (V.seeStretching === 1 && App.EndWeek.saVars.averageDick > 4) { + if (V.seeStretching === 1 && App.EndWeek.saVars.averageDick > 4 && !familyOnly) { if (slave.anus.isBetween(0, 3) && canDoAnal(slave)) { if ((slave.anus * 30) - (App.EndWeek.saVars.averageDick * 5) < random(1, 100)) { el.append(`Since most of the slaves ${he} demands anal sex from are extremely hung, `); @@ -813,7 +814,7 @@ App.EndWeek.Rules.rapeFetish = function(slave) { } } else if (slave.fetish === Fetish.MASOCHIST) { el.append(`demand that ${who} hurt ${him}. `); - if (V.seeStretching === 1 && App.EndWeek.saVars.averageDick > 4) { + if (V.seeStretching === 1 && App.EndWeek.saVars.averageDick > 4 && !familyOnly) { if (slave.anus.isBetween(0, 3) && canDoAnal(slave)) { if ((slave.anus * 30) - (App.EndWeek.saVars.averageDick * 5) < random(1, 100)) { App.UI.DOM.appendNewElement("span", el, `${His} asshole is loosened `, "lime"); @@ -867,7 +868,7 @@ App.EndWeek.Rules.rapeFetish = function(slave) { } } else if (slave.fetish === Fetish.PREGNANCY) { el.append(`demand that ${who} indulge ${his} pregnancy fetish. `); - if (App.EndWeek.saVars.averageDick > 5) { + if (App.EndWeek.saVars.averageDick > 5 && !familyOnly) { if (slave.mpreg === 0) { if (V.seeStretching === 1 && slave.vagina.isBetween(0, 3) && canDoVaginal(slave)) { if ((slave.vagina * 40) - (App.EndWeek.saVars.averageDick * 5) < random(1, 100)) { @@ -893,7 +894,7 @@ App.EndWeek.Rules.rapeFetish = function(slave) { } } else if (slave.energy > 95) { el.append(`demand that ${who} satisfy ${his} formidable appetites. `); - if (V.seeStretching === 1 && App.EndWeek.saVars.averageDick > 4) { + if (V.seeStretching === 1 && App.EndWeek.saVars.averageDick > 4 && !familyOnly) { if (slave.anus.isBetween(0, 3) && canDoAnal(slave)) { if ((slave.anus * 30) - (App.EndWeek.saVars.averageDick * 5) < random(1, 100)) { App.UI.DOM.appendNewElement("span", el, `${His} asshole is loosened `, "lime"); @@ -945,11 +946,12 @@ App.EndWeek.Rules.consentFetish = function(slave) { His, He, he, him, his, himself } = getPronouns(slave); + const familyOnly = slave.rules.release.slaves !== 1; if (slave.fetishKnown === 1 && slave.fetishStrength > 60) { if (slave.fetish === Fetish.SUBMISSIVE) { el.append(`usually pairing off with a more dominant slave. `); - if (V.seeStretching === 1 && App.EndWeek.saVars.averageDick > 4) { + if (V.seeStretching === 1 && App.EndWeek.saVars.averageDick > 4 && !familyOnly) { if (slave.anus.isBetween(0, 3) && canDoAnal(slave)) { if ((slave.anus * 40) - (App.EndWeek.saVars.averageDick * 5) < random(1, 100)) { App.UI.DOM.appendNewElement("span", el, `${His} asshole is loosened `, "lime"); @@ -993,7 +995,7 @@ App.EndWeek.Rules.consentFetish = function(slave) { el.append(`tease ${his} virgin anus `); } el.append(`in return. `); - if (V.seeStretching === 1 && App.EndWeek.saVars.averageDick > 4) { + if (V.seeStretching === 1 && App.EndWeek.saVars.averageDick > 4 && !familyOnly) { if (slave.anus.isBetween(0, 3) && canDoAnal(slave)) { if ((slave.anus * 30) - (App.EndWeek.saVars.averageDick * 5) < random(1, 100)) { el.append(`Since most of the slaves ${he} enjoys anal sex with are extremely hung, `); @@ -1020,7 +1022,7 @@ App.EndWeek.Rules.consentFetish = function(slave) { } } else if (slave.fetish === Fetish.MASOCHIST) { el.append(`usually pairing off with an abusive slave. `); - if (V.seeStretching === 1 && App.EndWeek.saVars.averageDick > 4) { + if (V.seeStretching === 1 && App.EndWeek.saVars.averageDick > 4 && !familyOnly) { if (slave.anus.isBetween(0, 3) && canDoAnal(slave)) { if ((slave.anus * 30) - (App.EndWeek.saVars.averageDick * 5) < random(1, 100)) { App.UI.DOM.appendNewElement("span", el, `${His} asshole is loosened, `, "lime"); @@ -1050,7 +1052,7 @@ App.EndWeek.Rules.consentFetish = function(slave) { } else if (slave.fetish === Fetish.PREGNANCY) { el.append(`doing ${his} best to pair off with any pregnant slaves. `); if (slave.mpreg === 0) { - if (V.seeStretching === 1 && App.EndWeek.saVars.averageDick > 5) { + if (V.seeStretching === 1 && App.EndWeek.saVars.averageDick > 5 && !familyOnly) { if (slave.vagina.isBetween(0, 3) && canDoVaginal(slave)) { if ((slave.vagina * 40) - (App.EndWeek.saVars.averageDick * 5) < random(1, 100)) { el.append(`${He} also takes cock whenever ${he} can, begging to be fucked deeply to get ${his} womb filled with cum, so `); @@ -1061,7 +1063,7 @@ App.EndWeek.Rules.consentFetish = function(slave) { } } } else { - if (V.seeStretching === 1 && App.EndWeek.saVars.averageDick > 5) { + if (V.seeStretching === 1 && App.EndWeek.saVars.averageDick > 5 && !familyOnly) { if (slave.anus.isBetween(0, 3) && canDoAnal(slave)) { if ((slave.anus * 40) - (App.EndWeek.saVars.averageDick * 5) < random(1, 100)) { el.append(`${He} also takes cock whenever ${he} can, begging to be fucked deeply to get ${his} womb filled with cum, so `); @@ -1078,7 +1080,7 @@ App.EndWeek.Rules.consentFetish = function(slave) { } } else if (slave.energy > 95) { el.append(`and has to give out a lot of favors to get enough attention for ${himself}. `); - if (V.seeStretching === 1 && App.EndWeek.saVars.averageDick > 4) { + if (V.seeStretching === 1 && App.EndWeek.saVars.averageDick > 4 && !familyOnly) { if (slave.anus.isBetween(0, 3) && canDoAnal(slave)) { if ((slave.anus * 30) - (App.EndWeek.saVars.averageDick * 5) < random(1, 100)) { App.UI.DOM.appendNewElement("span", el, `${His} asshole is loosened `, "lime"); diff --git a/src/events/JE/jeSlaveDisputeSlaveTraining.js b/src/events/JE/jeSlaveDisputeSlaveTraining.js index 1806fe7943f..2dc20572c4d 100644 --- a/src/events/JE/jeSlaveDisputeSlaveTraining.js +++ b/src/events/JE/jeSlaveDisputeSlaveTraining.js @@ -24,6 +24,7 @@ App.Events.JESlaveDisputeSlaveTraining = class JESlaveDisputeSlaveTraining exten slave.oldDevotion = slave.devotion; setHealth(slave, jsRandom(60, 80), 0, 0, 0, jsRandom(10, 30)); slave.balls = 0; + slave.scrotum = 0; slave.anus = 2; slave.skill.penetrative = 35; slave.skill.anal = 35; diff --git a/src/events/RE/reMalefactor.js b/src/events/RE/reMalefactor.js index 138c0545c69..1dd8add154f 100644 --- a/src/events/RE/reMalefactor.js +++ b/src/events/RE/reMalefactor.js @@ -461,6 +461,7 @@ App.Events.REMalefactor = class REMalefactor extends App.Events.BaseEvent { healthDamage(slave, 20); slave.balls = 0; + slave.scrotum = 0; slave.devotion -= 25; slave.trust -= 25; cashX(forceNeg(contractCost), "slaveTransfer", slave); diff --git a/src/events/scheduled/seCoursing.js b/src/events/scheduled/seCoursing.js index 54fca7c52c1..a5a2916d795 100644 --- a/src/events/scheduled/seCoursing.js +++ b/src/events/scheduled/seCoursing.js @@ -275,6 +275,7 @@ App.Events.SECoursing = class SECoursing extends App.Events.BaseEvent { slave.anus = 3; actX(slave, "anal"); slave.balls = random(0, 1); + slave.scrotum = slave.balls; slave.dick = random(1, 2); slave.skill.penetrative = 15; slave.skill.oral = 15; diff --git a/src/js/health.js b/src/js/health.js index 35e5b6faa1e..1eed1ce3b1a 100644 --- a/src/js/health.js +++ b/src/js/health.js @@ -117,7 +117,7 @@ globalThis.computeAggregateHealth = function(slave, condition) { const illness = (5 - Math.pow(H.illness, 2)) * 20; // 100 / -400 // Assigning weights to the different components and aggregating - return condition * 0.6 + damage * 0.2 + tired * 0.1 - illness * 0.1; + return condition * 0.6 + damage * 0.2 + tired * 0.1 + illness * 0.1; }; /** diff --git a/src/js/vignettes.js b/src/js/vignettes.js index 7e5de2543e0..0b712ef9e22 100644 --- a/src/js/vignettes.js +++ b/src/js/vignettes.js @@ -995,19 +995,21 @@ globalThis.GetVignette = function(slave) { } } } - if (slave.scrotum > 3) { - vignettes.push({ - text: `${he} loses a customer who wants ${him} to look like a natural girl, since ${his} balls are too big to be hidden,`, - type: "cash", - effect: -1, - }); - } - if (slave.scrotum > 0) { - vignettes.push({ - text: `a particularly sadistic customer attempted to geld ${him}, but ${he} managed to fight him off,`, - type: "health", - effect: -1, - }); + if (slave.balls > 0) { + if (slave.scrotum > 3) { + vignettes.push({ + text: `${he} loses a customer who wants ${him} to look like a natural girl, since ${his} balls are too big to be hidden,`, + type: "cash", + effect: -1, + }); + } + if (slave.scrotum > 0) { + vignettes.push({ + text: `a particularly sadistic customer attempted to geld ${him}, but ${he} managed to fight him off,`, + type: "health", + effect: -1, + }); + } } if (slave.vagina >= 0) { if (slave.genes === "XY") { @@ -3045,19 +3047,21 @@ globalThis.GetVignette = function(slave) { } } } - if (slave.scrotum > 3) { - vignettes.push({ - text: `${he} disappoints a citizen who wants ${him} to look like a natural girl, since ${his} balls are too big to be hidden,`, - type: "rep", - effect: -1, - }); - } - if (slave.scrotum > 0) { - vignettes.push({ - text: `a particularly sadistic citizen attempted to geld ${him}, but ${he} managed to fight him off,`, - type: "health", - effect: -1, - }); + if (slave.balls > 0) { + if (slave.scrotum > 3) { + vignettes.push({ + text: `${he} disappoints a citizen who wants ${him} to look like a natural girl, since ${his} balls are too big to be hidden,`, + type: "rep", + effect: -1, + }); + } + if (slave.scrotum > 0) { + vignettes.push({ + text: `a particularly sadistic citizen attempted to geld ${him}, but ${he} managed to fight him off,`, + type: "health", + effect: -1, + }); + } } if (slave.vagina >= 0) { if (slave.genes === "XY") { diff --git a/src/markets/specificMarkets/prestigiousSlave.js b/src/markets/specificMarkets/prestigiousSlave.js index ead76e81742..3d236d5caf7 100644 --- a/src/markets/specificMarkets/prestigiousSlave.js +++ b/src/markets/specificMarkets/prestigiousSlave.js @@ -776,10 +776,10 @@ App.Markets["Prestigious Slave"] = function() { if (slave.foreskin > 0) { slave.foreskin = slave.dick; } + slave.balls = 0; if (slave.balls > 0) { slave.scrotum = slave.balls; } - slave.balls = 0; slave.weight = 0; slave.piercing.genitals.weight = 2; slave.piercing.tongue.weight = 2; diff --git a/src/npc/generate/generateMarketSlave.js b/src/npc/generate/generateMarketSlave.js index 84c6ff2313b..09dd5ac9e08 100644 --- a/src/npc/generate/generateMarketSlave.js +++ b/src/npc/generate/generateMarketSlave.js @@ -2387,6 +2387,7 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1 slave.clit = 0; slave.dick = 0; slave.balls = 0; + slave.scrotum = 0; slave.preg = 0; slave.piercing.genitals.weight = 0; slave.piercing.genitals.smart = false; @@ -2394,6 +2395,7 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1 slave.underArmHStyle = "bald"; slave.pubicHStyle = "bald"; slave.hStyle = "bald"; + slave.bald = 1; slave.behavioralFlaw = jsEither(["none", "odd"]); slave.custom.tattoo = "$He has the abstract symbol of Nueva Universidad de Libertad tattooed on $his left shoulder."; break; diff --git a/src/npc/interaction/fFeelings.js b/src/npc/interaction/fFeelings.js index f4ddded703d..c0443392faa 100644 --- a/src/npc/interaction/fFeelings.js +++ b/src/npc/interaction/fFeelings.js @@ -1871,14 +1871,18 @@ App.Interact.fFeelings = function(slave) { text.push(`${Spoken(slave, `I'm really proud of how good I am putting my dick to use; it's a little surprising how many people want it.`)}`); } else if ((slave.skill.oral + slave.skill.anal) >= 120 && slave.vagina === -1) { text.push(`${Spoken(slave, `I'm really proud of my sex skills; it's nice to be good at what you do. Without a cunt my poor`)}`); - if (slave.anus > 2) { - text.push(`${Spoken(slave, `asspussy`)}`); - } else if (slave.anus === 2) { - text.push(`${Spoken(slave, `butthole`)}`); + if (slave.anus === 0 || !canDoAnal(slave)) { + text.push(`${Spoken(slave, `mouth just gets so sore after pulling triple duty. I know how to put my butt to use, if you'd let me. It would certainly help alleviate the strain.`)}`); } else { - text.push(`${Spoken(slave, `little anus`)}`); + if (slave.anus > 2) { + text.push(`${Spoken(slave, `asspussy`)}`); + } else if (slave.anus === 2) { + text.push(`${Spoken(slave, `butthole`)}`); + } else { + text.push(`${Spoken(slave, `little anus`)}`); + } + text.push(`${Spoken(slave, `does double duty, but I can take it.`)}`); } - text.push(`${Spoken(slave, `does double duty, but I can take it.`)}`); } else if ((slave.skill.oral + slave.skill.vaginal + slave.skill.anal + adjustedPenSkill(slave, true)) >= 180) { text.push(`${Spoken(slave, `I'm really proud of my sex skills; it's nice to be good at what you do.`)}`); } else if (slave.skill.whoring >= 100) { diff --git a/src/npc/interaction/passage/matchmaking.js b/src/npc/interaction/passage/matchmaking.js index bbb6ae73ab0..933d9b1450a 100644 --- a/src/npc/interaction/passage/matchmaking.js +++ b/src/npc/interaction/passage/matchmaking.js @@ -13,23 +13,24 @@ App.Interact.matchmaking = function(slave) { } = getPronouns(slave); const desc = SlaveTitle(slave); + const oldRelationship = slave.relationship; // prevent text from changing when updating slave.relationship App.UI.DOM.drawOneSlaveRight(node, slave); r.push(`You order`, App.UI.DOM.slaveDescriptionDialog(slave, slave.slaveName, {noArt: true}), `to come to your office. The`); - if (slave.relationship === -2) { + if (oldRelationship === -2) { r.push(`worshipful`); } else { r.push(`slutty`); } r.push(`${desc} arrives promptly, greets you correctly, and waits`); - if (slave.relationship === -2) { + if (oldRelationship === -2) { r.push(`adoringly for a command.`); } else { r.push(`eagerly for you to fuck ${him}.`); } r.push(`You consider the situation carefully.`); - if (slave.relationship === -2) { + if (oldRelationship === -2) { r.push(`${He}'s emotionally bonded to you, and loves you with all ${his} heart. ${He} would probably do anything you command and love you all the more for it. If you were to decide that you were tired of ${his} adoration, you could probably set ${him} up with another similarly broken slave. If you ordered them to love each other like they love you, they'd obey.`); } else { r.push(`${He}'s an emotional slut, and worships you and values ${himself} primarily in terms of sex. ${He}'s such a perfect sex slave that ${he}'d probably fuck anyone or anything you told ${him} to, and love you all the more for giving ${him} the chance. If you were to decide that even a sex slave like ${him} needs a little more structure than constant omnisexual lust, you could probably set ${him} up with another universal slut.`); @@ -41,7 +42,7 @@ App.Interact.matchmaking = function(slave) { const selections = App.UI.DOM.appendNewElement("div", node); selections.style.float = "inline-end"; - App.UI.DOM.appendNewElement("h2", selections, `Put ${him} with another worshipful ${(slave.relationship === -2) ? "emotionally bonded slave" : "emotional slut"}`); + App.UI.DOM.appendNewElement("h2", selections, `Put ${him} with another worshipful ${(oldRelationship === -2) ? "emotionally bonded slave" : "emotional slut"}`); selections.append(App.UI.SlaveList.slaveSelectionList( s => s.devotion >= 100 && s.relationship === slave.relationship && s.ID !== slave.ID, App.UI.SlaveList.SlaveInteract.stdInteract, @@ -91,13 +92,13 @@ App.Interact.matchmaking = function(slave) { r.push(`The two ${SlaveTitle(slave)}s will make a great couple.`); } r.push(`Telling the former to wait, you have the latter hurry up to your office. When the`); - if (slave.relationship === -2) { + if (oldRelationship === -2) { r.push(`slaves are waiting adoringly`); } else { r.push(`sluts are waiting with barely concealed lust`); } r.push(`in front of your desk together, you inform them of your decision.`); - if (slave.relationship === -2) { + if (oldRelationship === -2) { r.push(`You commend their love for you, and let them know that it's all right for it to continue, but command them to love each other, too. They look doubtful, but at your orders they obediently take each other by the hand, and share a kiss. It will do for now. You assign them to live together as much as possible for a few days, and inform them that you'll be limiting your personal contact with them during this period. They give you identical looks of horror, and fail to notice how much of a perfect couple they already are.`); } else { r.push(`You praise their total commitment to sexual slavery, and let them know they'll continue to be sex slaves, but tell them that it's time for them to settle down. They give you identical looks of horror, and fail to notice how much of a perfect couple they already are. Patiently, you explain that their sex lives will remain more or less unchanged; just because two slaves are together doesn't mean they can't and won't have sex with other people. They look doubtful, but cheer up when you inform them that they'll be spending a lot of alone time together for a few days.`); @@ -256,7 +257,7 @@ App.Interact.matchmaking = function(slave) { switch (slave.behavioralQuirk) { case "confident": r.push(`confident, and soon come to an understanding that they'll be able to`); - if (slave.relationship === -2) { + if (oldRelationship === -2) { r.push(`serve you better together.`); } else { r.push(`fuck third parties better as a pair.`); diff --git a/src/player/managePersonalAffairs.js b/src/player/managePersonalAffairs.js index 9a0c81df58c..30c3bb8d6a3 100644 --- a/src/player/managePersonalAffairs.js +++ b/src/player/managePersonalAffairs.js @@ -1368,7 +1368,7 @@ App.UI.managePersonalAffairs = function() { if (PC.lips <= 95 || (PC.lips <= 85 && V.seeExtreme !== 1)) { addApplyDrugLink(Drug.GROWLIP); } else { - links.push(App.UI.DOM.disabledLink(`lip injections`, [ + links.push(App.UI.DOM.disabledLink(`Lip injections`, [ `Lips cannot grow larger`, ])); } -- GitLab From 4b5253699079993909df862bb11ddb1bbb39e9bd Mon Sep 17 00:00:00 2001 From: GavAndAlt <gavandalt@gmail.com> Date: Tue, 25 Jun 2024 01:53:21 +0000 Subject: [PATCH 2/2] Fix bug in RAGeneMod and add clit penetration to facility leaders where it seemed fitting. --- src/endWeek/reports/brothelReport.js | 20 ++++++++++++++++---- src/endWeek/reports/cellblockReport.js | 8 ++++++-- src/endWeek/reports/dairyReport.js | 2 +- src/endWeek/reports/farmyardReport.js | 2 +- src/js/economyJS.js | 2 +- src/js/rulesAutosurgery.js | 7 ++----- 6 files changed, 27 insertions(+), 14 deletions(-) diff --git a/src/endWeek/reports/brothelReport.js b/src/endWeek/reports/brothelReport.js index 55eec8d1bc3..9bc4568cbd8 100644 --- a/src/endWeek/reports/brothelReport.js +++ b/src/endWeek/reports/brothelReport.js @@ -113,13 +113,25 @@ App.EndWeek.brothelReport = function() { if (S.Madam.intelligence + S.Madam.intelligenceImplant > 15) { r.push(`${He} is a clever manager.`); } - if (S.Madam.dick > 2 && canPenetrate(S.Madam)) { + if ((S.Madam.dick > 2 || S.Madam.clit > 3) && canPenetrateAny(S.Madam)) { if (S.Madam.skill.penetrative > 90) { - r.push(`${His} skilled dick incentivizes the bitches to behave.`); + if (S.Madam.dick > 2) { + r.push(`${His} skilled dick incentivizes the bitches to behave.`); + } else if (S.Madam.clit > 3) { + r.push(`${His} skilled clitdick incentivizes the bitches to behave.`); + } } else if (S.Madam.skill.penetrative > 10) { - r.push(`${His} turgid dick helps ${him} manage the bitches.`); + if (S.Madam.dick > 2) { + r.push(`${His} turgid dick helps ${him} manage the bitches.`); + } else if (S.Madam.clit > 3) { + r.push(`${His} gigantic turgid clit helps ${him} manage the bitches.`); + } } else { - r.push(`${He} tries to use ${his} turgid cock to keep the bitches in line, but ${his} lack of skill only leaves them off kilter.`); + if (S.Madam.dick > 2) { + r.push(`${He} tries to use ${his} turgid cock to keep the bitches in line, but ${his} lack of skill only leaves them off kilter.`); + } else if (S.Madam.clit > 3) { + r.push(`${He} tries to use ${his} gigantic turgid clit to keep the bitches in line, but ${his} lack of skill only leaves them off kilter.`); + } } slaveSkillIncrease('penetrative', S.Madam, 2); } diff --git a/src/endWeek/reports/cellblockReport.js b/src/endWeek/reports/cellblockReport.js index 8ec86b6341c..3f997df9664 100644 --- a/src/endWeek/reports/cellblockReport.js +++ b/src/endWeek/reports/cellblockReport.js @@ -112,11 +112,15 @@ App.EndWeek.cellblockReport = function() { idleBonus--; r.push(`${His} kindness sometimes shows through ${his} tough façade, letting prisoners get off easier than they should.`); } - if (S.Wardeness.dick > 2 && canPenetrate(S.Wardeness)) { + if ((S.Wardeness.dick > 2 || S.Wardeness.clit > 3) && canPenetrateAny(S.Wardeness)) { devBonus++; trustMalus++; idleBonus++; - r.push(`${His} molestation of the prisoners is more varied and effective because ${he} has a dick to fuck them with.`); + if (S.Wardeness.dick > 2) { + r.push(`${His} molestation of the prisoners is more varied and effective because ${he} has a dick to fuck them with.`); + } else if (S.Wardeness.clit > 3) { + r.push(`${His} molestation of the prisoners is more varied and effective because ${he} has a psudophalic clit to fuck them with.`); + } slaveSkillIncrease('penetrative', S.Wardeness, 2); } if (S.Wardeness.muscles > 35) { diff --git a/src/endWeek/reports/dairyReport.js b/src/endWeek/reports/dairyReport.js index 8f430e88e0c..24292bd7c43 100644 --- a/src/endWeek/reports/dairyReport.js +++ b/src/endWeek/reports/dairyReport.js @@ -110,7 +110,7 @@ App.EndWeek.dairyReport = function() { if (slave.belly >= 5000) { MMWorkout += workoutEffect; } - if (V.dairyStimulatorsSetting < 2 && S.Milkmaid.dick > 4 && canPenetrate(S.Milkmaid) && prostateStim !== 1) { + if (V.dairyStimulatorsSetting < 2 && (S.Milkmaid.dick > 4 || S.Milkmaid.clit > 4) && canPenetrateAny(S.Milkmaid) && prostateStim !== 1) { if (slave.balls > 0 && slave.prostate > 0) { prostateStim = 1; } diff --git a/src/endWeek/reports/farmyardReport.js b/src/endWeek/reports/farmyardReport.js index c2693262422..4d039bccc40 100644 --- a/src/endWeek/reports/farmyardReport.js +++ b/src/endWeek/reports/farmyardReport.js @@ -150,7 +150,7 @@ App.EndWeek.farmyardReport = function farmyardReport() { let FarmerCashBonus = Math.min(0.2, slave.skill.farmer * 0.002); FarmerCashBonus += slave.intelligence + slave.intelligenceImplant > 15 ? 0.05 : 0; - FarmerCashBonus += slave.dick > 2 && canPenetrate(slave) ? 0.05 : 0; + FarmerCashBonus += (slave.dick > 2 || slave.clit > 3) && canPenetrateAny(slave) ? 0.05 : 0; FarmerCashBonus += !canSmell(slave) ? 0.05 : 0; if (slave.actualAge > 35) { diff --git a/src/js/economyJS.js b/src/js/economyJS.js index faac91ef72e..ba7645681b6 100644 --- a/src/js/economyJS.js +++ b/src/js/economyJS.js @@ -1872,7 +1872,7 @@ globalThis.slaveJobValues = function(lowerClassSexDemandRef, middleClassSexDeman // $He is a clever manager. App.EndWeek.saVars.madamBonus += 0.05 * Math.floor((-0.00008 * madamIntel * madamIntel) + (0.0337 * madamIntel) + 0.5); } - if (madam.dick > 2 && canPenetrate(madam)) { + if ((madam.dick > 2 || madam.clit > 3)&& canPenetrateAny(madam)) { if (S.Madam.skill.penetrative > 90) { // $His skilled dick incentivizes the bitches to behave. App.EndWeek.saVars.madamBonus += 0.07; diff --git a/src/js/rulesAutosurgery.js b/src/js/rulesAutosurgery.js index 12ec4085a70..bd9e0efef97 100644 --- a/src/js/rulesAutosurgery.js +++ b/src/js/rulesAutosurgery.js @@ -27,12 +27,9 @@ globalThis.rulesAutosurgery = (function() { */ function autoSurgerySelector(ruleset) { const surgery = App.RA.newRule.surgery(); + const sourceRecord = {}; //Completely unessesary but (as far as I know) you can't use the function without it. ruleset.forEach(rule => { - Object.keys(rule.surgery) - .filter(key => rule.surgery[key] !== null) - .forEach(key => { - surgery[key] = rule.surgery[key]; - }); + App.RA.ruleDeepAssign(surgery, rule.surgery, sourceRecord, ":)"); //:) is here for the same reason as sourceRecord. }); return surgery; } -- GitLab