From b9bf9fce12b856fc478cb0e39be190ac5e219bd0 Mon Sep 17 00:00:00 2001 From: Pregmodder <pregmodder@gmail.com> Date: Wed, 6 Mar 2024 21:58:44 -0500 Subject: [PATCH] minor fixes manual merge --- CHANGELOG.md | 10 +++++++--- src/Mods/Catmod/events/CMRESS/catWorship.js | 13 ++++++++----- src/Mods/Catmod/events/nonRandom/bodypuristriot.js | 2 +- src/descriptions/arcologyDescription.js | 2 +- src/endWeek/economics/reputation.js | 2 +- src/events/RE/reRelativeRecruiter.js | 2 +- src/events/RESS/review/masterfulEntertainer.js | 4 ++-- src/gui/Encyclopedia/encyclopediaCredits.js | 2 +- src/gui/options/options.js | 2 +- src/js/rulesAssistantOptions.js | 2 +- src/js/utilsDOM.js | 2 +- src/js/utilsSlave.js | 2 +- src/js/utilsUnits.js | 2 +- src/personalAssistant/assistantAppearance.js | 4 ++-- 14 files changed, 29 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 15d75b59be7..09e46ca5939 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) * player .energy and .need * tool cleaning and improvements (compilers, sanityCheck, etc) +* genetic quirk support for Autosurgery +* control options for naturally occuring exotic hair colors +* favorites system improvements +* ability to export and import starting girls and starting settings * fixes ## 0.10.7.1-4.0.0-alpha.29 - 2024-02-03 @@ -2621,7 +2625,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ## 0.10.7.1-0.1.6 -* new voluntarily enslaved pairs can show their incestual love during recruitment +* new voluntarily enslaved pairs can show their incestuous love during recruitment * minor tweaks to muscle building and steroids * added fertility diet @@ -6877,7 +6881,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) * possibly fixed the slave is own niece thing 58 -* incestual relationships extended to player's mother, father and sisters +* incestuous relationships extended to player's mother, father and sisters 57 * bugfixes @@ -7549,7 +7553,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) 11 * bugfixes -* implemented new javascript to hopefully fix existing issues +* implemented new JavaScript to hopefully fix existing issues 2017-02-18 diff --git a/src/Mods/Catmod/events/CMRESS/catWorship.js b/src/Mods/Catmod/events/CMRESS/catWorship.js index 333c921f174..fe0c440e0da 100644 --- a/src/Mods/Catmod/events/CMRESS/catWorship.js +++ b/src/Mods/Catmod/events/CMRESS/catWorship.js @@ -1,4 +1,4 @@ -// cSpell:ignore gaspy +// cSpell:ignore gaspy oppurrtunities App.Events.CMRESSCatWorship = class CMRESSCatWorship extends App.Events.BaseEvent { eventPrerequisites() { @@ -24,6 +24,9 @@ App.Events.CMRESSCatWorship = class CMRESSCatWorship extends App.Events.BaseEven const { He, he, his, him, girl, himself } = getPronouns(eventSlave); + const { + heU, hisU, himU, himselfU + } = getNonlocalPronouns(V.seeDicks).appendSuffix("U"); const PC = V.PC; App.Events.drawEventArt(node, eventSlave); @@ -51,7 +54,7 @@ App.Events.CMRESSCatWorship = class CMRESSCatWorship extends App.Events.BaseEven function spitroast() { t = []; - t.push(`You enter into the showers yourself, accompanied by the sound of ${eventSlave.slaveName}'s mewling moans and the gentle patter of water on skin and fur. Slipping off your pants and ${PC.dick !== 0 ? "gripping your dick with one hand" : "readying the strapon you bring with you for just these sorts of oppurtunities"}, the slave servicing ${eventSlave.slaveName}'s `); + t.push(`You enter into the showers yourself, accompanied by the sound of ${eventSlave.slaveName}'s mewling moans and the gentle patter of water on skin and fur. Slipping off your pants and ${PC.dick !== 0 ? "gripping your dick with one hand" : "readying the strapon you bring with you for just these sorts of oppurrtunities"}, the slave servicing ${eventSlave.slaveName}'s `); if (eventSlave.dick > 0) { t.push(`throbbing cock`); } else if (eventSlave.vagina > 0) { @@ -59,7 +62,7 @@ App.Events.CMRESSCatWorship = class CMRESSCatWorship extends App.Events.BaseEven } else { t.push(`smooth crotchfur`); } - t.push(`yelps in surprise as you lift her up from the back, but doesn't resist as you angle and thrust ${PC.dick !== 0 ? "yourself" : "your strapon"} into her. The hard bucking immediately makes her service to ${eventSlave.slaveName}'s crotch uneven and shaky - but the sporadic lapping from your thrusts, combined with the second slave still worshipping her ass, just makes ${eventSlave.slaveName} even more of a gaspy mess. ${He} flutters ${his} big catlike eyes at you <span class="devotion inc">lovingly,</span> and leans forward to plant a <span class="trust inc">tender kiss</span> on your lips as you thrust forward into the bottom slave, before sputtering out the hardest orgasm you've ever seen with a tongue deep up ${his} ass, your lips locked together, and `); + t.push(`yelps in surprise as you lift ${himU} up from the back, but doesn't resist as you angle and thrust ${PC.dick !== 0 ? "yourself" : "your strapon"} into ${himU}. The hard bucking immediately makes ${hisU} service to ${eventSlave.slaveName}'s crotch uneven and shaky - but the sporadic lapping from your thrusts, combined with the second slave still worshipping ${his} ass, just makes ${eventSlave.slaveName} even more of a gaspy mess. ${He} flutters ${his} big catlike eyes at you <span class="devotion inc">lovingly,</span> and leans forward to plant a <span class="trust inc">tender kiss</span> on your lips as you thrust forward into the bottom slave, before sputtering out the hardest orgasm you've ever seen with a tongue deep up ${his} ass, your lips locked together, and `); if (eventSlave.dick > 0) { t.push(`a pair of lips sealed around ${his} dick.`); } else if (eventSlave.vagina > 0) { @@ -76,13 +79,13 @@ App.Events.CMRESSCatWorship = class CMRESSCatWorship extends App.Events.BaseEven t = []; t.push(`No reason to interrupt a good thing. You content yourself to lean back against the entrance to the showers and watch as ${eventSlave.slaveName} gets ${his} two little slaves to pay their respects to the feline form, the one in front `); if (eventSlave.dick > 0) { - t.push(`throating herself on cock`); + t.push(`throating ${himselfU} on cock`); } else if (eventSlave.vagina > 0) { t.push(`eating ${him} out with furry thighs locked against ${his} head`); } else { t.push(`lapping religiously at the smooth crotchfur`); } - t.push(`while the one behind buries herself deep in feline asscheeks, looking like she's trying to get her tongue deep enough up ${eventSlave.slaveName}'s butt to french kiss the feline from behind. ${eventSlave.slaveName} skillfully manages both of ${his} worshippers with ${his} hands, running them through both slave's hair and bucking ${his} ass and crotch reactively against each of their faces. Maintaining an impressive composure against the onslaught of sensation, ${eventSlave.slaveName} gives you a quivering little smile as you look onto the depraved scene, clearly <span class="trust inc">happy</span> you've let ${him} engage in ${his} dominant tendencies uninterrupted.`); + t.push(`while the one behind buries ${himselfU} deep in feline asscheeks, looking like ${heU}'s trying to get ${hisU} tongue deep enough up ${eventSlave.slaveName}'s butt to French kiss the feline from behind. ${eventSlave.slaveName} skillfully manages both of ${his} worshippers with ${his} hands, running them through both slave's hair and bucking ${his} ass and crotch reactively against each of their faces. Maintaining an impressive composure against the onslaught of sensation, ${eventSlave.slaveName} gives you a quivering little smile as you look onto the depraved scene, clearly <span class="trust inc">happy</span> you've let ${him} engage in ${his} dominant tendencies uninterrupted.`); eventSlave.trust += 10; return t; } diff --git a/src/Mods/Catmod/events/nonRandom/bodypuristriot.js b/src/Mods/Catmod/events/nonRandom/bodypuristriot.js index 24ea7cdc3aa..105b28d3725 100644 --- a/src/Mods/Catmod/events/nonRandom/bodypuristriot.js +++ b/src/Mods/Catmod/events/nonRandom/bodypuristriot.js @@ -101,7 +101,7 @@ App.Events.SEBodyPuristRiot = class SEBodyPuristRiot extends App.Events.BaseEven function reputation() { const frag = new DocumentFragment(); let r = []; - r.push(`You brush some concrete dust from the thrown brick off your shoulder. This isn't the first enemy you've stared down, and it sure as hell isn't the scariest. Even above the crackle of electrobatons and the shouting of the crowd, the entire riot group seems to hear when you ask them coldly if they've forgotten who you are. As the crowd watches, you rattle off battlefields and massacres, the names of armies you've shattered and towns you've burnt to ashes, casually point a finger at the blonde man with the megaphone, say his full name, and tell him that if he says another word you'll give his two daughters to your mercenaries as rape-toys, cut off his dick, and use him as a whipping board until he bleeds out after a few years of abuse. The crowd might have guns and knives, but they still quiet down at your words, balking somewhat at the threat of brutality. You take the oppurtunity to remind them that the security cameras outside your penthouse has recorded every face in the crowd, and anyone who actually uses the weapons in their hands has their home, occupation, and family on file. No one moves a muscle.`); // "oppurtunity"... spelling or cat pun? 🤔 + r.push(`You brush some concrete dust from the thrown brick off your shoulder. This isn't the first enemy you've stared down, and it sure as hell isn't the scariest. Even above the crackle of electrobatons and the shouting of the crowd, the entire riot group seems to hear when you ask them coldly if they've forgotten who you are. As the crowd watches, you rattle off battlefields and massacres, the names of armies you've shattered and towns you've burnt to ashes, casually point a finger at the blonde man with the megaphone, say his full name, and tell him that if he says another word you'll give his two daughters to your mercenaries as rape-toys, cut off his dick, and use him as a whipping board until he bleeds out after a few years of abuse. The crowd might have guns and knives, but they still quiet down at your words, balking somewhat at the threat of brutality. You take the opportunity to remind them that the security cameras outside your penthouse has recorded every face in the crowd, and anyone who actually uses the weapons in their hands has their home, occupation, and family on file. No one moves a muscle.`); App.Events.addParagraph(frag, r); r = []; r.push(`You tell the frozen crowd that you'll be continuing your work on Project N, and that if any one of them ever shows up at your house again with a gun, it'll be the worst, and last, decision they ever make. A few people at the back start to break off from the crowd. You turn back to your penthouse and walk inside as the crowd disintegrates. You have work to do, and you get the feeling these people <span class="green">aren't going to bother you again.</span>`); diff --git a/src/descriptions/arcologyDescription.js b/src/descriptions/arcologyDescription.js index 8e474636ea6..3d4ad025a39 100644 --- a/src/descriptions/arcologyDescription.js +++ b/src/descriptions/arcologyDescription.js @@ -938,7 +938,7 @@ App.Desc.playerArcology = function(lastElement) { } else if (A.FSChineseRevivalistDecoration >= 80) { buffer.push(`The noise in the thriving open space is almost oppressive, with the sounds of drunken merriment, traditional music, and distant intercourse forming an omnipresent hum.`); } else if (A.FSAntebellumRevivalistDecoration >= 80) { - buffer.push(`The sound of hushed gossip is just barely discernable over a waltz being played in some distant ballroom.`); + buffer.push(`The sound of hushed gossip is just barely discernible over a waltz being played in some distant ballroom.`); } return buffer.join(" "); diff --git a/src/endWeek/economics/reputation.js b/src/endWeek/economics/reputation.js index a1fbd9a2508..0e6a6501b6b 100644 --- a/src/endWeek/economics/reputation.js +++ b/src/endWeek/economics/reputation.js @@ -445,7 +445,7 @@ App.EndWeek.reputation = function() { r.push(`Society adores huge cocks and yours is particularly popular; your meaty sausage <span class="green">improves</span> your public image.`); repX((3 * V.PC.dick), "PCappearance"); } else if (V.PC.dick > 0 && V.PC.dick < 3 && V.PC.physicalAge > 12) { - r.push(`Society adores huge cocks and yours is anything but; your pathetic weiner <span class="green">ruins</span> your public image.`); + r.push(`Society adores huge cocks and yours is anything but; your pathetic wiener <span class="green">ruins</span> your public image.`); repX(forceNeg(100), "PCappearance"); } if (V.PC.balls >= 9) { diff --git a/src/events/RE/reRelativeRecruiter.js b/src/events/RE/reRelativeRecruiter.js index 352ed5876ad..5f5ab12dd31 100644 --- a/src/events/RE/reRelativeRecruiter.js +++ b/src/events/RE/reRelativeRecruiter.js @@ -170,7 +170,7 @@ App.Events.RERelativeRecruiter = class RERelativeRecruiter extends App.Events.Ba // pick a random background for the selected relative this.params.background = this._getRelativeBackgrounds(this.params.relative).random(); - let that = this; // fuck javascript's half-assed classes + let that = this; // fuck JavaScript's half-assed classes let cost = 0; // will be filled out later let cheatDiv = App.UI.DOM.makeElement("div", (V.debugMode > 0 && V.debugModeEventSelection > 0) ? cheatModeSelectors() : ''); diff --git a/src/events/RESS/review/masterfulEntertainer.js b/src/events/RESS/review/masterfulEntertainer.js index bf37fa91ef1..28d67faea47 100644 --- a/src/events/RESS/review/masterfulEntertainer.js +++ b/src/events/RESS/review/masterfulEntertainer.js @@ -172,7 +172,7 @@ App.Events.RESSMasterfulEntertainer = class RESSMasterfulEntertainer extends App seX(eventSlave, "penetrative", PC, "vaginal"); if (canImpreg(PC, eventSlave)) { r.push(knockMeUp(PC, 20, 0, eventSlave.ID)); - } + } if (PC.vagina === 0) { r.push(r.pop().replace(/.$/, ` <span class="virginity loss">giving ${him} your cherry.</span>`)); PC.vagina++; @@ -181,7 +181,7 @@ App.Events.RESSMasterfulEntertainer = class RESSMasterfulEntertainer extends App seX(eventSlave, "penetrative", PC, "anal"); if (canImpreg(PC, eventSlave)) { r.push(knockMeUp(PC, 20, 1, eventSlave.ID)); - } + } if (PC.anus === 0) { r.push(r.pop().replace(/.$/, ` <span class="virginity loss">giving ${him} your anal cherry.</span>`)); PC.anus++; diff --git a/src/gui/Encyclopedia/encyclopediaCredits.js b/src/gui/Encyclopedia/encyclopediaCredits.js index 6150f4a5d40..90528472333 100644 --- a/src/gui/Encyclopedia/encyclopediaCredits.js +++ b/src/gui/Encyclopedia/encyclopediaCredits.js @@ -63,7 +63,7 @@ App.Encyclopedia.addArticle("Credits", function() { }, { n: "anon", d: ["for HGExclusion and animal pregnancy work."] }, { - n: "anon", d: ["for putting up with my javascript incompetence."] + n: "anon", d: ["for putting up with my JavaScript incompetence."] }, { n: "anon", d: ["for player family listing."] }, { diff --git a/src/gui/options/options.js b/src/gui/options/options.js index 267009d0a3f..69e51e3db6d 100644 --- a/src/gui/options/options.js +++ b/src/gui/options/options.js @@ -745,7 +745,7 @@ App.UI.optionsPassage = function() { options.addOption("Rules Assistant target growth expressions", "raGrowthExpr", V.experimental) .addValue("Enabled", 1).on().addValue("Disabled", 0).off() - .addComment("This will allow javascript expressions to be used in the Rules Assistant growth target setters."); + .addComment("This will allow JavaScript expressions to be used in the Rules Assistant growth target setters."); options.addOption("New event", "tempEventToggle") .addValue("Enabled", 1).on().addValue("Disabled", 0).off(); diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js index 154bd79bd68..b7f798725c9 100644 --- a/src/js/rulesAssistantOptions.js +++ b/src/js/rulesAssistantOptions.js @@ -2,7 +2,7 @@ /* eslint-disable no-unused-vars */ // cSpell:ignore onoffswitch, rajs, hidey -// rewrite of the rules assistant options page in javascript +// rewrite of the rules assistant options page in JavaScript // uses an object-oriented widget pattern // wrapped in a closure so as not to pollute the global namespace // the widgets are generic enough to be reusable; if similar user interfaces are ported to JS, we could move the classes to the global scope diff --git a/src/js/utilsDOM.js b/src/js/utilsDOM.js index 21a1a9fdfab..e7a2bc319ec 100644 --- a/src/js/utilsDOM.js +++ b/src/js/utilsDOM.js @@ -461,7 +461,7 @@ App.UI.DOM.cashFormat = function(s, invert) { * Renders an exception to DOM. * Tries it's best to not fail itself. * - * @param {any} ex Exception - normally of type Error, but Javascript literally lets you throw anything + * @param {any} ex Exception - normally of type Error, but JavaScript literally lets you throw anything * @param {boolean} recursion set if formatException() called itself, never set from outside * @returns {DocumentFragment|HTMLParagraphElement} */ diff --git a/src/js/utilsSlave.js b/src/js/utilsSlave.js index 78074add1ba..4a09a4470d6 100644 --- a/src/js/utilsSlave.js +++ b/src/js/utilsSlave.js @@ -935,7 +935,7 @@ globalThis.convertCareer = function(slave) { /** * Convert a tutor key name to the corresponding leadership skill key name - * @param {string} key + * @param {string} key */ globalThis.tutorKeyToSkillKey = function(key) { if (key === "DJ") return "DJ"; diff --git a/src/js/utilsUnits.js b/src/js/utilsUnits.js index adc07720cfa..426ae35c1e3 100644 --- a/src/js/utilsUnits.js +++ b/src/js/utilsUnits.js @@ -20,7 +20,7 @@ globalThis.num = function(x, printText = false) { ]; const SCALES = ["thousand", "million", "billion", "trillion", "quadrillion", "quintillion", "sextillion", - "septillion", "octillion", "nonillion", "decillion"]; + "septillion", "octillion", "nonillion", "decillion", "undecillion", "duodecillion"]; /** * helper function for use with Array.filter diff --git a/src/personalAssistant/assistantAppearance.js b/src/personalAssistant/assistantAppearance.js index 3ed3b596022..5674b4b81fc 100644 --- a/src/personalAssistant/assistantAppearance.js +++ b/src/personalAssistant/assistantAppearance.js @@ -962,7 +962,7 @@ globalThis.PersonalAssistantAppearance = function() { "edo revivalist": `${HeA}'s given ${hisA} appearance a Japanese style, making ${himA} look like a demon.`, "arabian revivalist": `${HeA}'s given ${hisA} appearance a mystical Arabian style, making ${himA} look like a djinn.`, "chinese revivalist": `${HeA}'s given ${hisA} appearance a Chinese style, making ${himA} look like a demon.`, - "antebellum revivalist": `${HeA} head has been replaced with the skull of a deer adorned with heavy antlers. An eerie red glow emits from the shadowed eye sockets. Underneath the patchwork of scarred skin and black, bristly fur, the unmistakable curve of large, teardrop-shaped breasts and wide hips is discernable.`, + "antebellum revivalist": `${HeA} head has been replaced with the skull of a deer adorned with heavy antlers. An eerie red glow emits from the shadowed eye sockets. Underneath the patchwork of scarred skin and black, bristly fur, the unmistakable curve of large, teardrop-shaped breasts and wide hips is discernible.`, "chattel religionist": `${HeA}'s wearing the garb of a priestess of the new faith, which clashes amusingly with ${hisA} demonic appearance.`, "repopulation focus": `${HeA}'s very pregnant; ${hisA} belly is covered in large bulges revealing the eggs growing within ${himA}.`, eugenics: `${HeA}'s wearing a complex chastity device, keeping ${hisA} dicks and cunt unusable.`, @@ -1028,7 +1028,7 @@ globalThis.PersonalAssistantAppearance = function() { "edo revivalist": `wearing a Japanese warrior's robe with a pair of swords tucked into its sash.`, "arabian revivalist": `with a bare chest, loose pantaloons, and a broad silk sash wound around ${hisA} waist with a scimitar thrust into it.`, "chinese revivalist": `wearing loose silk robes belted with rope and carrying a simple warrior monk's staff.`, - "antebellum revivalist": `wearing an unbuttoned Confederate army coat, exposing a loose, low-cut blouse. ${HeA} has an old-fashioned revolver holstered on one hip and a calvary saber sheathed on the other. ${HeA} confidently pushes out ${hisA} chest, giving you a nice view down ${hisA} shirt.`, + "antebellum revivalist": `wearing an unbuttoned Confederate army coat, exposing a loose, low-cut blouse. ${HeA} has an old-fashioned revolver holstered on one hip and a cavalry saber sheathed on the other. ${HeA} confidently pushes out ${hisA} chest, giving you a nice view down ${hisA} shirt.`, "chattel religionist": V.arcologies[0].FSChattelReligionistLaw2 === 1 ? `with your religion's holy symbol painted on ${hisA} nude body. ${HisA} long blonde hair cascades down ${hisA} back in golden glory.` : `wearing a crusader's mail. ${HisA} long blonde hair cascades down the back of ${hisA} surcoat in golden glory.`, "repopulation focus": `with an enormous belly. Its oversized occupant kicks and squirms ferociously, eager to be born.`, eugenics: `with a complex bone chastity belt blocking ${hisA} vagina.`, -- GitLab