From ad67b60a78f21fceb9bdb251ff3d0c5338beb291 Mon Sep 17 00:00:00 2001 From: Trinidad <anchaiscastilla@gmail.com> Date: Sat, 13 Apr 2024 18:22:46 +0200 Subject: [PATCH 1/6] modified: js/003-data/playerData.js --- js/003-data/playerData.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/003-data/playerData.js b/js/003-data/playerData.js index 12e5cf6d266..0b306908108 100644 --- a/js/003-data/playerData.js +++ b/js/003-data/playerData.js @@ -27,7 +27,7 @@ App.Data.player = { [4, { name: `Injected`, - suggestions: new Set(["stimulants", "heroin"]) + suggestions: new Set(["stimulants", "heroin", "fertility booster"]) } ], [5, -- GitLab From e91ab6de8f571bbb61cad8177b1528a20cb5561e Mon Sep 17 00:00:00 2001 From: Trinidad <anchaiscastilla@gmail.com> Date: Sun, 14 Apr 2024 00:59:47 +0200 Subject: [PATCH 2/6] modified: js/003-data/playerData.js modified: src/events/intro/pcAppearance.js modified: src/pregmod/blackMarket.js --- js/003-data/playerData.js | 2 +- src/events/intro/pcAppearance.js | 7 +++++- src/pregmod/blackMarket.js | 39 ++++++++++++++++++++++++++++++-- 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/js/003-data/playerData.js b/js/003-data/playerData.js index 0b306908108..12e5cf6d266 100644 --- a/js/003-data/playerData.js +++ b/js/003-data/playerData.js @@ -27,7 +27,7 @@ App.Data.player = { [4, { name: `Injected`, - suggestions: new Set(["stimulants", "heroin", "fertility booster"]) + suggestions: new Set(["stimulants", "heroin"]) } ], [5, diff --git a/src/events/intro/pcAppearance.js b/src/events/intro/pcAppearance.js index 24d7c31976a..9c3557ad216 100644 --- a/src/events/intro/pcAppearance.js +++ b/src/events/intro/pcAppearance.js @@ -508,7 +508,7 @@ App.UI.Player.assignCareerByAge = function(selection) { return career; }; -App.UI.Player.refreshmentChoice = function(options) { +App.UI.Player.refreshmentChoice = function(options, blackMarket = false) { let option = options.addOption("Your preferred refreshment is", "refreshmentType", V.PC); for (const [key, value] of App.Data.player.refreshmentType) { option.addValue(value.name, key, () => { V.PC.refreshment = value.suggestions.values().next().value; } ); @@ -527,6 +527,11 @@ App.UI.Player.refreshmentChoice = function(options) { for (const refreshment of App.Data.player.refreshmentType.get(V.PC.refreshmentType).suggestions) { option.addValue(capFirstChar(refreshment), refreshment); } + if (V.PC.refreshmentType === 1 && blackMarket && (V.PC.ovaries === 1 || V.PC.mpreg === 1)) { + option.addValue("Fertility syrup", "fertility syrup"); + } else if (V.PC.refreshmentType === 4 && blackMarket && (V.PC.ovaries === 1 || V.PC.mpreg === 1)) { + option.addValue("Fertility booster", "fertility booster"); + } }; App.UI.Player.names = function(options) { diff --git a/src/pregmod/blackMarket.js b/src/pregmod/blackMarket.js index e3f49ceee7f..e85765b180f 100644 --- a/src/pregmod/blackMarket.js +++ b/src/pregmod/blackMarket.js @@ -40,11 +40,46 @@ App.UI.blackMarket = function() { App.Events.addParagraph(node, [`Once inside, you are able to fully absorb in the sights and sounds of the market proper. All sorts of items are available for purchase, from exotic beasts that may very well be the last of their kind, to the most lethal of weaponry both old and new, and even luxuries long gone. Despite the overbearing security, one's wallet can easily be emptied in this place.`]); const options = new App.UI.OptionsGroup(); - App.UI.Player.refreshmentChoice(options); + App.UI.Player.refreshmentChoice(options, true); App.Events.addParagraph(node, [ `There is quite the selection of refreshments available, you could always shift your orders from ${V.PC.refreshment} to something new.`, options.render() - ]); + ]) + if (!V.PC.refreshment.includes("fertility") && (V.PC.ovaries === 1 || V.PC.mpreg === 1)) { + if (V.PC.refreshmentType === 4) { + App.Events.addParagraph(node, [ + `Particularly, certain injectables catch your eye, claiming to be a refined extract of opiates, genetically altered to evade the adverse effects of heroin use without sacrificing its recreational value. They are referred to as`, + App.UI.DOM.appendNewElement("div", node, App.UI.DOM.link( + "Fertility Booster", + () => { + V.PC.refreshmentType = 4; + V.PC.refreshment = "fertility booster"; + App.UI.reload(); + }, + [], + "", + "" + )), + `on the black market because of rummors that they may have a side effect of increased fertility.` + ]) + } else { + App.Events.addParagraph(node, [ + `You notice a high-proof beverage that is manufactured, so the label says, from a combination of psychoactive botanicals macerated in alcohol under specific circumstances.`, + App.UI.DOM.appendNewElement("div", node, App.UI.DOM.link( + "Fertility Syrup", + () => { + V.PC.refreshmentType = 1; + V.PC.refreshment = "fertility syrup"; + App.UI.reload(); + }, + [], + "", + "" + )), + `is a suggestive term, which is undoubtedly a marketing ploy.` + ]) + } + }; if (V.consumerDrugs === 0 && V.dispensary === 1 && V.PC.skill.medicine < 100) { r = []; -- GitLab From 1411c28c7b5065f7fa2d6d27f471034abc455a38 Mon Sep 17 00:00:00 2001 From: Trinidad <anchaiscastilla@gmail.com> Date: Sun, 14 Apr 2024 01:42:42 +0200 Subject: [PATCH 3/6] modified: src/events/intro/pcAppearance.js modified: src/pregmod/blackMarket.js --- src/events/intro/pcAppearance.js | 6 +++--- src/pregmod/blackMarket.js | 24 ++++++++++++------------ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/events/intro/pcAppearance.js b/src/events/intro/pcAppearance.js index 9c3557ad216..4924ed20595 100644 --- a/src/events/intro/pcAppearance.js +++ b/src/events/intro/pcAppearance.js @@ -513,7 +513,7 @@ App.UI.Player.refreshmentChoice = function(options, blackMarket = false) { for (const [key, value] of App.Data.player.refreshmentType) { option.addValue(value.name, key, () => { V.PC.refreshment = value.suggestions.values().next().value; } ); } - let comment = `Flavor only; no mechanical effect. If entering a custom refreshment, please assign proper usage.`; + let comment = `${blackMarket && (V.PC.ovaries === 1 || V.PC.mpreg === 1) ? "" : "Flavor only; no mechanical effect. "}If entering a custom refreshment, please assign proper usage.`; if (V.PC.refreshmentType === 0) { comment += ` "Smoked" must fit into the following sentence: "I smoked a ${V.PC.refreshment}" to fit events properly.`; } else if (V.PC.refreshmentType === 5) { @@ -528,9 +528,9 @@ App.UI.Player.refreshmentChoice = function(options, blackMarket = false) { option.addValue(capFirstChar(refreshment), refreshment); } if (V.PC.refreshmentType === 1 && blackMarket && (V.PC.ovaries === 1 || V.PC.mpreg === 1)) { - option.addValue("Fertility syrup", "fertility syrup"); + option.addValue("Fertility Syrup", "fertility syrup"); } else if (V.PC.refreshmentType === 4 && blackMarket && (V.PC.ovaries === 1 || V.PC.mpreg === 1)) { - option.addValue("Fertility booster", "fertility booster"); + option.addValue("Fertility Booster", "fertility booster"); } }; diff --git a/src/pregmod/blackMarket.js b/src/pregmod/blackMarket.js index e85765b180f..56aa89db3be 100644 --- a/src/pregmod/blackMarket.js +++ b/src/pregmod/blackMarket.js @@ -41,15 +41,12 @@ App.UI.blackMarket = function() { const options = new App.UI.OptionsGroup(); App.UI.Player.refreshmentChoice(options, true); - App.Events.addParagraph(node, [ - `There is quite the selection of refreshments available, you could always shift your orders from ${V.PC.refreshment} to something new.`, - options.render() - ]) + r.push(`There is quite the selection of refreshments available, you could always shift your orders from ${V.PC.refreshment} to something new.`); if (!V.PC.refreshment.includes("fertility") && (V.PC.ovaries === 1 || V.PC.mpreg === 1)) { if (V.PC.refreshmentType === 4) { - App.Events.addParagraph(node, [ + r.push( `Particularly, certain injectables catch your eye, claiming to be a refined extract of opiates, genetically altered to evade the adverse effects of heroin use without sacrificing its recreational value. They are referred to as`, - App.UI.DOM.appendNewElement("div", node, App.UI.DOM.link( + App.UI.DOM.link( "Fertility Booster", () => { V.PC.refreshmentType = 4; @@ -59,13 +56,13 @@ App.UI.blackMarket = function() { [], "", "" - )), + ), `on the black market because of rummors that they may have a side effect of increased fertility.` - ]) + ); } else { - App.Events.addParagraph(node, [ + r.push( `You notice a high-proof beverage that is manufactured, so the label says, from a combination of psychoactive botanicals macerated in alcohol under specific circumstances.`, - App.UI.DOM.appendNewElement("div", node, App.UI.DOM.link( + App.UI.DOM.link( "Fertility Syrup", () => { V.PC.refreshmentType = 1; @@ -75,11 +72,14 @@ App.UI.blackMarket = function() { [], "", "" - )), + ), `is a suggestive term, which is undoubtedly a marketing ploy.` - ]) + ); } }; + r.push(options.render()) + App.Events.addParagraph(node, r); + r = []; if (V.consumerDrugs === 0 && V.dispensary === 1 && V.PC.skill.medicine < 100) { r = []; -- GitLab From 68150b465e6b65c9d4c43c85025d976ade647995 Mon Sep 17 00:00:00 2001 From: Trinidad <anchaiscastilla@gmail.com> Date: Sun, 14 Apr 2024 17:57:39 +0200 Subject: [PATCH 4/6] modified: src/pregmod/blackMarket.js --- src/pregmod/blackMarket.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pregmod/blackMarket.js b/src/pregmod/blackMarket.js index 56aa89db3be..af9f2b49aa1 100644 --- a/src/pregmod/blackMarket.js +++ b/src/pregmod/blackMarket.js @@ -42,6 +42,7 @@ App.UI.blackMarket = function() { const options = new App.UI.OptionsGroup(); App.UI.Player.refreshmentChoice(options, true); r.push(`There is quite the selection of refreshments available, you could always shift your orders from ${V.PC.refreshment} to something new.`); + /* if (!V.PC.refreshment.includes("fertility") && (V.PC.ovaries === 1 || V.PC.mpreg === 1)) { if (V.PC.refreshmentType === 4) { r.push( @@ -77,6 +78,7 @@ App.UI.blackMarket = function() { ); } }; + */ r.push(options.render()) App.Events.addParagraph(node, r); r = []; -- GitLab From 9fa7fa51814e7060ab7c45c1efb0cf8794dbbbfb Mon Sep 17 00:00:00 2001 From: Frankly George <54015-franklygeorge@users.noreply.gitgud.io> Date: Sun, 14 Apr 2024 18:51:43 +0000 Subject: [PATCH 5/6] Rewrite documentation to reflect tooling changes --- CONTRIBUTING.md | 70 +++++++++++++++++++--------------- FCHost/documentation_FCHost.md | 7 ++-- README.md | 57 ++++++++++++++++----------- 3 files changed, 77 insertions(+), 57 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 02aa37b799b..c0e39f92b92 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,7 +2,7 @@ First off, thanks for taking the time to contribute! -If there is anything you don't understand feel free to ask. Many of the more advanced tools are also not required for +If there is anything you don't understand feel free to ask. The advanced tooling is not required for fixing small typos or simple bugs. ## Environment @@ -13,38 +13,51 @@ To effectively work on the project the following tools are required: * [Git](https://git-scm.com) * [Node.js](https://nodejs.org/en/) or another npm client -* a code editor +* a code editor/IDE * [VSCode](https://code.visualstudio.com/) is a popular option -* [Java Runtime Environment](https://jdk.java.net/18/), minimum JRE8 + +While these tools make working on FC easier, they are not actually required. ### Setting everything up 1. Clone the project from GitGud.io ([Detailed Git setup and work cycle](devNotes/gitSetup.md)) 2. Navigate to the `fc-pregmod` root directory. - * Windows: Open a terminal and execute `cd C:\path\to\project\fc-pregmod` - * GNU/Linux: Open a terminal and execute `cd /path/to/project/fc-pregmod/` -3. Run `npm install` in your terminal -4. Open the directory in your preferred editor + * Windows: Run `Windows Powershell` or `Command Prompt` and execute `cd C:\path\to\project\fc-pregmod` + * Mac/Linux: Open a terminal and execute `cd /path/to/project/fc-pregmod/` +3. Run `setup.bat` (Windows) or `setup.sh` (Mac/Linux) in your terminal +4. Follow the install steps until you get to the `Welcome to FC development!...` menu and then select `Exit` +5. Open the directory in your preferred editor/IDE -* Make sure you have an extension for ESLint installed to catch formatting errors +**Make sure you have an extension for ESLint installed in your preferred editor/IDE to catch formatting errors** -Recommended extensions for VSCode: +<details><summary>Recommended editor/IDE plugins/extensions</summary> +The list below is for VSCode. If you are not using VSCode but want some of these extensions functionality, then do some research. Many of these extensions exist or have alternatives in most common editors/IDEs. +* [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) + * Catches formatting problems and lets you know when your code doesn't conform to our standards * [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker) -* [GitLens — Git supercharged](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens). + * Catches most spelling issues +* [Error Lens](https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens) + * Highlights lines that ESLint and Code Spell Checker have marked as having problems +* [Git Extension Pack](https://marketplace.visualstudio.com/items?itemName=donjayamanne.git-extension-pack) + * Adds a few of tools that make working with git easier +* [IntelliCode](https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode) + * Will make your day easier by suggesting functions and properties for autocompletion + * Will also show you documentation for those suggested functions and properties +* [TODO Highlight](https://marketplace.visualstudio.com/items?itemName=wayou.vscode-todo-highlight) + * Makes TODO comments stand out better +* [Todo Tree](https://marketplace.visualstudio.com/items?itemName=Gruntfuggly.todo-tree) + * Adds a tab to the left sidebar that lists all TODO comments in the current project +</details> ### Compiling -While you can compile it like usual (`compile.bat`/`compile.sh`/`make`), there is also a `Gulp script` that creates -source maps for easier debugging. Other than that there are no differences between compiling for development or -compiling for playing the game. - -If you are using an ARM-based device, you may need to use `arch -x86_64 bash compile.sh` to properly compile. +Use either the simple or advanced compiler. See the `Compile the game yourself` section in the [readme](README.md) for more information. ## Code style -Generally the code style is based on our `.eslintrc.json`. If your IDE has an auto format feature it can often read the -rules from `.eslintrc.json`. **Be sure to run `npm run lint` in the console before committing and pushing your changes.** +The coding style is based on our `.eslintrc.json`. If your editor/IDE has ESLint support it will let you know when your code doesn't conform to our standards. + * Most editors/IDEs don't have native ESLint support and will need you to install an ESLint plugin/extension. ### Documentation @@ -137,21 +150,13 @@ New code should generally get organized into the `App` namespace. See [fc-js-ini ### JavaScript Features -Use modern JavaScript features when possible. We are currently targeting ECMAScript 2021, and aren't trying to support Internet Explorer or anything stupid like that (it isn't 2010 anymore). For example, use `let`/`const` rather than `var`, prefer fat arrow functions to inline long-form functions, use nullish coalescing and optional chaining, etc. +Use modern JavaScript features when possible. We are currently targeting ECMAScript 2021, and aren't trying to support Internet Explorer or anything stupid like that (it isn't 2010 anymore). For example, use `let`/`const` rather than `var`, prefer [`Arrow function expressions`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions) to inline long-form functions, use [`nullish coalescing`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing) and [`optional chaining`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining), etc. ### Code quality -There are three main tools used to ensure good code quality: `ESLint`, `TypeScript Compiler (tsc)` and a custom sanity -check. - -`ESLint` and `tsc` can be setup in most IDEs aimed at web development to show errors while editing the file. - -Contributions should generally not add any new sanity check errors, and it's especially important to check this if -you're making changes to `.tw` files. -Use `./compile.sh --dry --sanity` or the shorthand `./compile.sh -d -s` on Linux or macOS. -On Windows run `compile_debug+sanityCheck.bat`. -It searches for common spelling errors and syntax errors in the Twine files. Don't worry about preexisting -errors; it's not totally clean as is and there are a few false positives. +Contributions should generally not add any new sanity check errors. You can check for errors by running `sanityCheck.bat` (Windows) or `sanityCheck.sh` (Mac/Linux). + * With the default settings this will (mostly) show you just the errors that were caused by your changes. + * If you are not using the advanced tooling then use `legacySanityCheck.bat` or `legacySanityCheck.sh` instead. ## Project Structure @@ -165,7 +170,8 @@ errors; it's not totally clean as is and there are a few false positives. ### Developer Files * `devNotes/` contains various wiki files and other potentially interesting files. -* `devTools/` contains various scripts and executables needed for working with the project or compiling. TypeScript typing files are stored here as well. +* `devTools/` contains various scripts and executables needed for working with the project or compiling. + * TypeScript typing files are stored here as well in the `types/` subdirectory. * `submodules/` contains Git submodules * currently only a custom version of SugarCube 2 @@ -188,7 +194,7 @@ errors; it's not totally clean as is and there are a few false positives. * [Twine<sup>1</sup>](devNotes/sceneGuide.md) * [JavaScript](devNotes/jsEventCreationGuide.md) * [Exception handling](devNotes/exceptions.md) -* [Sanity check](devNotes/sanityCheck.md) +* [Sanity check<sup>2</sup>](devNotes/sanityCheck.md) * [Slave List](devNotes/slaveListing.md) * [Pronouns](devNotes/Pronouns.md) * External function documentation @@ -199,6 +205,8 @@ errors; it's not totally clean as is and there are a few false positives. <sup>1. Twine is being phased out of the project and should not be used in new code, but the basic concepts found here still apply.</sup> +<sup>2. Only applies to the legacy sanity checks.</sup> + ### Useful issues * [Setting up VS Code](https://gitgud.io/pregmodfan/fc-pregmod/-/issues/2448) diff --git a/FCHost/documentation_FCHost.md b/FCHost/documentation_FCHost.md index 8fe64864f0d..dc04e359fad 100644 --- a/FCHost/documentation_FCHost.md +++ b/FCHost/documentation_FCHost.md @@ -9,14 +9,15 @@ FCHost is an alternative HTML renderer for playing Pregmod based on Chromium. It * No lost saves due to accidentally cleared cookies. * Can be noticeable faster. -A Windows build built on 3.14.2024 is available [here](https://mega.nz/file/AFhTxLxR#fQgZFswJHVLpLlY5BzhTPmUKtmISeHdJ065b_MW0700) -A precompiled version for Windows is available [here](https://mega.nz/folder/vzxgwKwL#L4V4JEk1YfWcvC7EG76TMg) +A Windows build is available for [download](https://mega.nz/file/AFhTxLxR#fQgZFswJHVLpLlY5BzhTPmUKtmISeHdJ065b_MW0700). + +If you are developing FC using the advanced tooling then you can run `FCHost.bat` (Windows) or `FCHost.sh` (Mac/Linux) to download and setup FCHost automatically. ## Initial setup ### HTML files -Place FC_pregmod.html next to the FCHost executable. On Windows, this is `fchost.exe` +Place `FC_pregmod.html` next to the FCHost executable. This is usually `fchost.exe`, but it may be a file named `fchost` on Mac/Linux. ### Art resources diff --git a/README.md b/README.md index 46cb8e4b2ab..e5f8ea1a2c4 100644 --- a/README.md +++ b/README.md @@ -27,36 +27,47 @@ If you want to tweak the game a bit, you can easily download the files and compi * Via terminal: `git pull` 2. Compile the game: - * Windows - * Run compile.bat - * Second run of compile.bat will overwrite without prompt - - * Linux/Mac - 1. Ensure executable permission on file `devTools/tweeGo/tweego` (not tweego.exe!) - 2. Ensure executable permission on file `compile.sh` - 3. In the root dir of sources (where you see src, devTools, bin...) run command `./compile.sh` from console. - Alternatively, if you have make installed, run `make all` in the root directory. - -3. To play open FC_pregmod.html in bin/ + * Using one of two methods + 1. The simple compiler by running `simple-compiler.bat` (Windows) or `simple-compiler.sh` (Mac/Linux) + * Benefits: + * Requires no external dependencies + * Slightly faster compiling + 2. The advanced compiler by running `compile.bat` (Windows) or `compile.sh` (Mac/Linux) + * Requires: + * [Git](https://git-scm.com/) + * [Node.js](https://nodejs.org) + * ~500 MB of Node packages + * `compile.[bat, sh]` will attempt to help you with the installation of its dependencies + * Benefits: + * Easier debugging + * Early problem detection + * Spell checking + * Tweaking of compiler settings by running `setup.bat` (Windows) or `setup.sh` (Mac/Linux) + * Copies `FC_pregmod.html` to `FCHost` if it is installed + * Live reloading of FC after file changes by running `watcher.bat` (Windows) or `watcher.sh` (Mac/Linux) + * **The second run of the compiler will overwrite the existing `FC_pregmod.html` file!** + * **All our tooling expects that you are running them in FC's root directory** (Where you see devTools, src, js, etc). Failure to do so will result in errors. + * If you are using an ARM-based device, you may need to use `arch -x86_64 bash [compile or simple-compiler].sh` to properly compile. + +3. To play open `FC_pregmod.html` in the `bin/` folder + * Repeat steps 2 and 3 after you make any changes or use `watcher.[bat, sh]` to do them automatically. ## Common problems -* If compiling takes a while or causes a noticeable increase in system resource utilisation. - - It might be worth checking your main Antivirus (AV) settings. - - If it is Windows Defender (currently tested with Windows 10): - * `Start menu` -> `Windows Security` -> `Virus & threat protection` -> `Virus & threat protection settings` -> +* If compiling takes a long time (more than 2 minutes) or causes a noticeable increase in system resource utilisation. + - FC's compiler makes a lot of file changes over a short period of time. Some Antivirus programs will make FC's compiler wait while it scans the contents of each changed file. So it might be worth making sure FC's directory is excluded in your Antivirus settings. + * If your Antivirus is Windows Defender (currently tested with Windows 10 on 04/14/2024): + * `Start menu` -> `Windows Security` -> `Virus & threat protection` -> `Virus & threat protection settings` -> `Manage settings` -> `Exclusions (near the bottom)` -> `Add or remove exclusions` -> `Add an exclusion` -> - `path to bin/.` + `path to FC's root directory (Where you see devTools, src, js, etc).` * `sessionStorage quota exceeded` / `localStorage quota exceeded` or something similar - Your saves stored inside the browser are getting too large. There are multiple ways to solve this: 1. Delete saves stored in the browser. If you want to keep them, save them to disk first. - 2. Disable autosave and delete the current one. Due to technical reasons autosaves are larger than normal saves, - so this may help more than expected. + 2. Disable autosave and delete the current one. Due to technical reasons autosaves are larger than normal saves, so this may help more than expected. 3. If on Firefox, raise the storage limit: Type `about:config` in the address bar and search for `dom.storage.default_quota`. Increase this value as needed. Default value is 5120 kilobytes / 5 MB. - 4. Switch to a different browser. Recommended is either Firefox or [FCHost](FCHost/documentation_FCHost.md), a - custom HTML renderer specifically for Pregmod. + 4. Switch to a different browser. Recommended is either Firefox or [FCHost](FCHost/documentation_FCHost.md), a custom HTML renderer specifically for Pregmod. 5. If you absolutely need to use Google Chrome: 1. download and unzip [NW.js SDK](https://nwjs.io/downloads/) for your operative system. 2. copy the game file (FC_pregmod.html) into the `nwjs-sdk-v0.XX.Y-YOUR_OS` folder @@ -80,9 +91,9 @@ If you want to tweak the game a bit, you can easily download the files and compi first problem as well. - It is possible to increase the memory utilized by your browser to delay this -* I wish to report a sanityCheck issue. - - Open an issue or, if you are interested, it could be a great first contribution. Be warned though, a large number - are false positives. +* I wish to report an issue. + 1. Search [issues](https://gitgud.io/pregmodfan/fc-pregmod/-/issues) to see if someone has already reported the issue. + 2. [Open a new issue](https://gitgud.io/pregmodfan/fc-pregmod/-/issues/new) or, if you are interested in trying to fix it yourself, please see our guide on [contributing](CONTRIBUTING.md). ## Contribute -- GitLab From ac84a73d3f059be15e52211e9b58ab490715a603 Mon Sep 17 00:00:00 2001 From: Frankly George <54015-franklygeorge@users.noreply.gitgud.io> Date: Mon, 15 Apr 2024 03:13:59 +0000 Subject: [PATCH 6/6] Misc fixes --- cspell.json | 3 +- devTools/scripts/setup.js | 1 - js/003-data/gameVariableData.js | 7 +- src/002-config/fc-version.js | 2 +- .../events/nonRandom/projectNComplete.js | 4 +- .../backwardsCompatibility.js | 6 + .../backwardsCompatibility/datatypeCleanup.js | 53 ++- .../updateSlaveObject.js | 14 +- src/endWeek/economics/neighborsDevelopment.js | 2 +- src/endWeek/nextWeek/nextWeek.js | 2 +- src/events/RE/reAWOL.js | 2 +- src/events/RE/reMalefactor.js | 10 +- src/events/RE/reRoyalBlood.js | 4 +- src/events/RE/reShelterInspection.js | 2 +- src/events/RESS/review/niceGuys.js | 2 +- src/events/RESS/review/subjugationBlues.js | 6 +- src/events/intro/arcologySelection.js | 2 +- src/events/intro/introSummary.js | 2 +- src/events/intro/pcAppearance.js | 10 +- src/events/intro/slaveAgeIntro.js | 8 +- src/events/nonRandom/mercs/pSlaveMedic.js | 10 +- .../nonRandom/mercs/pSnatchAndGrabResult.js | 12 +- src/events/nonRandom/pAidResult.js | 8 +- src/events/nonRandom/pregnancyNotice.js | 1 - src/events/nonRandom/rival/pRivalryCapture.js | 6 +- src/events/nonRandom/rival/pRivalryHostage.js | 8 +- src/events/reRecruit/blessedVessel.js | 2 +- src/events/reRecruit/blessedVirgin.js | 2 +- src/events/reRecruit/blindHomeless.js | 2 +- src/events/reRecruit/desperatePreg.js | 2 +- src/events/reRecruit/embryoAppropriation.js | 2 +- src/events/reRecruit/farmBull.js | 2 +- src/events/reRecruit/farmCow.js | 2 +- src/events/reRecruit/femaleRecruit.js | 2 +- src/events/reRecruit/femaleSD2.js | 2 +- src/events/reRecruit/maleRecruit.js | 2 +- src/events/reRecruit/princelyBetrayal.js | 4 +- src/events/reRecruit/racerLoser.js | 2 +- src/events/reRecruit/whoreRecruit.js | 2 +- .../recETS/recetsDesperateBroodmother.js | 2 +- src/events/recFS/recfsPastoralist.js | 2 +- src/events/recFS/recfsRepopulationEfforts.js | 2 +- .../recFS/recfsRepopulationEffortsTwo.js | 2 +- src/events/scheduled/seRaiding.js | 6 +- src/events/scheduled/seTheSirenStrikesBack.js | 2 +- src/facilities/nursery/utils/nurseryUtils.js | 44 ++- src/facilities/studio/studio.js | 4 +- src/gui/Encyclopedia/encyclopediaMods.js | 2 +- src/init/storyInit.js | 2 +- src/js/DefaultRules.js | 2 +- src/js/SlaveState.js | 23 +- src/js/familyTreeJS.js | 85 +++-- src/js/slaveSummaryHelpers.js | 324 +++++++++--------- src/js/slaveSummaryWidgets.js | 36 +- src/js/utilsSlave.js | 32 +- src/markets/specificMarkets/slaveShelter.js | 8 +- src/markets/theMarket/marketData.js | 4 +- src/npc/children/ChildState.js | 16 +- src/npc/databases/dSlavesDatabase.js | 139 ++++---- src/npc/databases/ddSlavesDatabase.js | 45 ++- src/npc/databases/dfSlavesDatabase.js | 9 +- src/npc/generate/generateMarketSlave.js | 17 +- src/npc/generate/generateNewSlaveJS.js | 27 +- src/npc/generate/generateRelatedSlave.js | 2 +- src/npc/generate/heroCreator.js | 14 +- src/npc/generate/newSlaveIntro.js | 2 +- src/npc/startingGirls/startingGirls.js | 8 +- src/npc/startingGirls/startingGirlsPassage.js | 2 +- src/npc/surgery/surgery.js | 2 +- src/player/js/PlayerState.js | 1 - src/player/js/enslavePlayer.js | 14 +- src/pregmod/FCTV/FCTVshows.js | 4 +- src/pregmod/blackMarket.js | 4 +- 73 files changed, 594 insertions(+), 509 deletions(-) diff --git a/cspell.json b/cspell.json index 2634d48e0ad..5127e379389 100644 --- a/cspell.json +++ b/cspell.json @@ -260,6 +260,7 @@ "incentivizes", "incubatee", "indo-aryan", + "intellicode", "jetpack", "jism", "jizya", @@ -406,4 +407,4 @@ "xochiquetzal", "école" ] -} +} \ No newline at end of file diff --git a/devTools/scripts/setup.js b/devTools/scripts/setup.js index c6b9c006d3b..0bc9febf24f 100644 --- a/devTools/scripts/setup.js +++ b/devTools/scripts/setup.js @@ -54,7 +54,6 @@ const separatorString = "-".repeat(78); // TODO:@franklygeorge Do we want an extensions.json file for VSCode? // TODO:@franklygeorge Figure out why setup.[bat,sh] is slow to start (~5 seconds). Probably affects compile.[bat,sh] and sanityCheck.[bat,sh] as well -// TODO:@franklygeorge Search for todo's with @franklygeorge in them and complete them /** @type {Settings} */ const settings = { diff --git a/js/003-data/gameVariableData.js b/js/003-data/gameVariableData.js index 9aa94404204..11e64c7075f 100644 --- a/js/003-data/gameVariableData.js +++ b/js/003-data/gameVariableData.js @@ -285,8 +285,8 @@ App.Data.defaultGameStateVariables = { findData: "", underperformersCount: 7, - // eslint-disable-next-line camelcase - pedo_mode: 0, + /** @type {FC.Bool} */ + pedoMode: 0, minimumSlaveAge: 16, fertilityAge: 13, potencyAge: 13, @@ -1681,7 +1681,8 @@ App.Data.defaultGameOptions = { realRoyalties: 0, inbreeding: 1, seeAge: 1, - pedo_mode: 0, + /** @type {FC.Bool} */ + pedoMode: 0, minimumSlaveAge: 16, extremeUnderage: 0, retirementAge: 45, diff --git a/src/002-config/fc-version.js b/src/002-config/fc-version.js index c374c7a9698..93b999aaade 100644 --- a/src/002-config/fc-version.js +++ b/src/002-config/fc-version.js @@ -2,5 +2,5 @@ App.Version = { base: "0.10.7.1", // The vanilla version the mod is based off of, this should never be changed. pmod: "4.0.0-alpha.31", commitHash: null, - release: 1239, // When getting close to 2000, please remove the check located within the onLoad() function defined at line five of src/js/eventHandlers.js. + release: 1240, // When getting close to 2000, please remove the check located within the onLoad() function defined at line five of src/js/eventHandlers.js. }; diff --git a/src/Mods/Catmod/events/nonRandom/projectNComplete.js b/src/Mods/Catmod/events/nonRandom/projectNComplete.js index 220db4602bc..341d66f2f40 100644 --- a/src/Mods/Catmod/events/nonRandom/projectNComplete.js +++ b/src/Mods/Catmod/events/nonRandom/projectNComplete.js @@ -16,11 +16,11 @@ App.Events.SEProjectNComplete = class SEProjectNComplete extends App.Events.Base slave.slaveName = V.subjectDeltaName; slave.birthName = V.subjectDeltaName; slave.hColor = "white"; - slave.override_H_Color = 1; // TODO: Identifier 'override_H_Color' is not in camel case + slave.overrideHColor = 1; slave.origHColor = "white"; slave.skin = "pure white"; slave.origSkin = "pure white"; - slave.override_Skin = 1; // TODO: Identifier 'override_Skin' is not in camel case + slave.overrideSkin = 1; slave.boobs = 300; slave.natural.boobs = 300; slave.earTColor = slave.hColor; diff --git a/src/data/backwardsCompatibility/backwardsCompatibility.js b/src/data/backwardsCompatibility/backwardsCompatibility.js index 25d33c3dcaa..72c8fd72289 100644 --- a/src/data/backwardsCompatibility/backwardsCompatibility.js +++ b/src/data/backwardsCompatibility/backwardsCompatibility.js @@ -1581,6 +1581,12 @@ App.Update.globalVariables = function(node) { V.showPotentialSizes = V.showPotentialSizes ?? 1; + // remapping variables + if (V.releaseID < 1240 && "pedo_mode" in V) { + V.pedoMode = V.pedo_mode; + delete V.pedo_mode; + } + node.append(`Done!`); }; diff --git a/src/data/backwardsCompatibility/datatypeCleanup.js b/src/data/backwardsCompatibility/datatypeCleanup.js index dada15b8573..143a1f10509 100644 --- a/src/data/backwardsCompatibility/datatypeCleanup.js +++ b/src/data/backwardsCompatibility/datatypeCleanup.js @@ -510,6 +510,11 @@ globalThis.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() { if (typeof slave.origRace !== "string") { slave.origRace = slave.race; } + if (V.releaseID < 1240 && "override_Race" in slave) { + // @ts-expect-error + slave.overrideRace = slave.override_Race; + delete slave.override_Race; + } if (typeof slave.skin !== "string") { slave.skin = "light"; } @@ -519,6 +524,11 @@ globalThis.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() { if (typeof slave.minorInjury !== "string") { slave.minorInjury = 0; } + if (V.releaseID < 1240 && "override_Skin" in slave) { + // @ts-expect-error + slave.overrideSkin = slave.override_Skin; + delete slave.override_Skin; + } slave.health.condition = Math.clamp(slave.health.condition, -100, 200) || 0; slave.health.shortDamage = Math.max(+slave.health.shortDamage, 0) || 0; @@ -546,6 +556,11 @@ globalThis.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() { if (slave.lips !== 0) { slave.lips = Math.clamp(+slave.lips, 0, 100) || 15; } + if (V.releaseID < 1240 && "override_Eye_Color" in slave) { + // @ts-expect-error + slave.overrideEyeColor = slave.override_Eye_Color; + delete slave.override_Eye_Color; + } } /** @@ -587,6 +602,28 @@ globalThis.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() { if (typeof slave.eyebrowFullness !== "string") { slave.eyebrowFullness = "natural"; } + if (V.releaseID < 1240) { + if ("override_H_Color" in slave) { + // @ts-expect-error + slave.overrideHColor = slave.override_H_Color; + delete slave.override_H_Color; + } + if ("override_Pubic_H_Color" in slave) { + // @ts-expect-error + slave.overridePubicHColor = slave.override_Pubic_H_Color; + delete slave.override_Pubic_H_Color; + } + if ("override_Arm_H_Color" in slave) { + // @ts-expect-error + slave.overrideArmHColor = slave.override_Arm_H_Color; + delete slave.override_Arm_H_Color; + } + if ("override_Brow_H_Color" in slave) { + // @ts-expect-error + slave.overrideBrowHColor = slave.override_Brow_H_Color; + delete slave.override_Brow_H_Color; + } + } } /** @@ -2187,17 +2224,17 @@ App.Entity.Utils.RARuleDatatypeCleanup = function() { } } else if (cond.specialSlaves === 1) { // only: replace regular assignments let newAssignments = []; - for (const a of cond.assignment) { + for (const assignment of cond.assignment) { let found = false; for (const f of fwh) { - if (a === f.jobs[f.defaultJob].assignment) { + if (assignment === f.jobs[f.defaultJob].assignment) { newAssignments.push(f.manager.assignment); found = true; break; } } if (!found) { - newAssignments.push(a); + newAssignments.push(assignment); } } // now if newAssignments is empty, we add all facility heads and special slaves @@ -2440,12 +2477,12 @@ App.Entity.Utils.RARuleDatatypeCleanup = function() { } /** - * @param {FC.RA.RuleReleaseSetters} rr + * @param {FC.RA.RuleReleaseSetters} releaseRule * @returns {FC.RA.RuleReleaseSetters} */ - function convertReleaseRules(rr) { - if (typeof rr === 'string') { - switch (rr) { + function convertReleaseRules(releaseRule) { + if (typeof releaseRule === 'string') { + switch (releaseRule) { case "chastity": return { facilityLeader: 0, @@ -2493,7 +2530,7 @@ App.Entity.Utils.RARuleDatatypeCleanup = function() { }; } } - return rr; + return releaseRule; } /** @param {FC.RA.RuleSetters} set */ diff --git a/src/data/backwardsCompatibility/updateSlaveObject.js b/src/data/backwardsCompatibility/updateSlaveObject.js index 725d04a720e..ef2346848cc 100644 --- a/src/data/backwardsCompatibility/updateSlaveObject.js +++ b/src/data/backwardsCompatibility/updateSlaveObject.js @@ -40,14 +40,12 @@ App.Update.Slave = function(slave, genepool = false) { abortionTat: -1, birthsTat: -1, readyProsthetics: [], - /* eslint-disable camelcase */ - override_Race: 0, - override_Skin: 0, - override_Eye_Color: 0, - override_H_Color: 0, - override_Pubic_H_Color: 0, - override_Arm_H_Color: 0, - /* eslint-enable camelcase */ + overrideRace: 0, + overrideSkin: 0, + overrideEyeColor: 0, + overrideHColor: 0, + overridePubicHColor: 0, + overrideArmHColor: 0, pregControl: "none", pregNoticeDefault: "none", pregNoticeBypass: false, diff --git a/src/endWeek/economics/neighborsDevelopment.js b/src/endWeek/economics/neighborsDevelopment.js index 1ebdfcbaa75..ff0dad1e383 100644 --- a/src/endWeek/economics/neighborsDevelopment.js +++ b/src/endWeek/economics/neighborsDevelopment.js @@ -853,7 +853,7 @@ App.EndWeek.neighborsDevelopment = function() { if (arc.FSYouthPreferentialist >= V.FSLockinLevel) { if ((arc.name.indexOf("Arcology") !== -1) && (random(0, 2) === 0)) { r.push(`Youth Preferentialism has reached stability and acceptance there. The arcology has been renamed`); - if (V.pedo_mode === 1 || V.minimumSlaveAge < 6) { + if (V.pedoMode === 1 || V.minimumSlaveAge < 6) { arc.name = App.Neighbor.getUnusedName(App.Data.ArcologyNames.YouthPreferentialistLow); } else if (V.minimumSlaveAge < 14) { arc.name = App.Neighbor.getUnusedName(App.Data.ArcologyNames.YouthPreferentialist.concat(App.Data.ArcologyNames.YouthPreferentialistLow)); diff --git a/src/endWeek/nextWeek/nextWeek.js b/src/endWeek/nextWeek/nextWeek.js index e74104c98dd..8803e85fa24 100644 --- a/src/endWeek/nextWeek/nextWeek.js +++ b/src/endWeek/nextWeek/nextWeek.js @@ -411,7 +411,7 @@ App.EndWeek.nextWeek = function() { V.thisWeeksFSWares = V.merchantFSWares.randomMany(2); V.thisWeeksIllegalWares = V.merchantIllegalWares.randomMany(1); V.prisonCircuitIndex++; - if (V.prisonCircuit[V.prisonCircuitIndex] === "juvenile detention" && (V.minimumSlaveAge >= 16 || V.pedo_mode === 1)) { + if (V.prisonCircuit[V.prisonCircuitIndex] === "juvenile detention" && (V.minimumSlaveAge >= 16 || V.pedoMode === 1)) { V.prisonCircuitIndex++; // skip juvenile detention if juvenile slaves are not allowed, or we're in pedo mode (where all prisoners are juvenile) } if (V.prisonCircuitIndex >= V.prisonCircuit.length) { diff --git a/src/events/RE/reAWOL.js b/src/events/RE/reAWOL.js index c1956d8cfb3..8a9fb1f831a 100644 --- a/src/events/RE/reAWOL.js +++ b/src/events/RE/reAWOL.js @@ -13,7 +13,7 @@ App.Events.REAWOL = class REAWOL extends App.Events.BaseEvent { execute(node) { const bountyFee = 5000; - const minAge = (V.pedo_mode === 1) ? 21 : 38; + const minAge = (V.pedoMode === 1) ? 21 : 38; const genParam = { minAge: minAge, maxAge: 43, ageOverridesPedoMode: 1, race: "nonslave", disableDisability: 1 }; diff --git a/src/events/RE/reMalefactor.js b/src/events/RE/reMalefactor.js index 053b910023c..459b43f32e7 100644 --- a/src/events/RE/reMalefactor.js +++ b/src/events/RE/reMalefactor.js @@ -828,7 +828,7 @@ App.Events.REMalefactor = class REMalefactor extends App.Events.BaseEvent { case "mule": pram = new GenerateNewSlavePram(); Object.assign(pram, {disableDisability: 1, minAge: 13, race: "nonslave"}); - if (V.pedo_mode === 0) { + if (V.pedoMode === 0) { pram.maxAge = 26; } slave = GenerateNewSlave("XX", pram); @@ -909,10 +909,10 @@ App.Events.REMalefactor = class REMalefactor extends App.Events.BaseEvent { slave.skin = randomRaceSkin(fakeRace); setEyeColor(slave, randomRaceEye(fakeRace)); slave.hColor = randomRaceHair(fakeRace); - slave.override_Race = 1; - slave.override_Skin = 1; - slave.override_H_Color = 1; - slave.override_Eye_Color = 1; + slave.overrideRace = 1; + slave.overrideSkin = 1; + slave.overrideHColor = 1; + slave.overrideEyeColor = 1; break; } return slave; diff --git a/src/events/RE/reRoyalBlood.js b/src/events/RE/reRoyalBlood.js index f7826ade1ac..d415905af25 100644 --- a/src/events/RE/reRoyalBlood.js +++ b/src/events/RE/reRoyalBlood.js @@ -632,7 +632,7 @@ App.Events.RERoyalBlood = class RERoyalBlood extends App.Events.BaseEvent { break; } slave = GenerateNewSlave("XX", { - minAge: V.fertilityAge + V.minimumSlaveAge + 1, maxAge: (V.pedo_mode === 1 ? 24 : 43), disableDisability: 1, nationality: nationality, race: race + minAge: V.fertilityAge + V.minimumSlaveAge + 1, maxAge: (V.pedoMode === 1 ? 24 : 43), disableDisability: 1, nationality: nationality, race: race }); if (slave.nationality === "Japanese") { slave.birthSurname = "Yamato"; @@ -689,7 +689,7 @@ App.Events.RERoyalBlood = class RERoyalBlood extends App.Events.BaseEvent { } slave.slaveSurname = slave.birthSurname; } else { - slave = GenerateNewSlave("XX", {minAge: V.fertilityAge + V.minimumSlaveAge + 1, maxAge: (V.pedo_mode === 1 ? 24 : 43), disableDisability: 1}); + slave = GenerateNewSlave("XX", {minAge: V.fertilityAge + V.minimumSlaveAge + 1, maxAge: (V.pedoMode === 1 ? 24 : 43), disableDisability: 1}); } slave.anus = 0; slave.weight = 0; diff --git a/src/events/RE/reShelterInspection.js b/src/events/RE/reShelterInspection.js index e9626c86871..f37d1f11b37 100644 --- a/src/events/RE/reShelterInspection.js +++ b/src/events/RE/reShelterInspection.js @@ -762,7 +762,7 @@ App.Events.REShelterInspection = class REShelterInspection extends App.Events.Ba inspector.face = -20; inspector.voice = 1; inspector.hColor = "graying"; - inspector.override_H_Color = 1; + inspector.overrideHColor = 1; inspector.hLength = 40; inspector.hStyle = "bun"; inspector.energy = random(5, 50); diff --git a/src/events/RESS/review/niceGuys.js b/src/events/RESS/review/niceGuys.js index 4b09c943023..6403a9f991a 100644 --- a/src/events/RESS/review/niceGuys.js +++ b/src/events/RESS/review/niceGuys.js @@ -71,7 +71,7 @@ App.Events.RESSNiceGuys = class RESSNiceGuys extends App.Events.BaseEvent { r.push(`"Can we just walk up to ${him} and ask ${him} out?" says one.`); r.toParagraph(); r.push(`"Don't be <b>stupid,</b>" says another. "Like, look at ${him}, why would ${he} even touch any of us?`); - if (V.pedo_mode === 0) { + if (V.pedoMode === 0) { if (eventSlave.visualAge < 12) { r.push(`${He}'s just a little ${girl} – is that even legal?`); } else if (eventSlave.visualAge < 16) { diff --git a/src/events/RESS/review/subjugationBlues.js b/src/events/RESS/review/subjugationBlues.js index f231443ec40..6a4e366ec3f 100644 --- a/src/events/RESS/review/subjugationBlues.js +++ b/src/events/RESS/review/subjugationBlues.js @@ -139,9 +139,9 @@ App.Events.RESSSubjugationBlues = class RESSSubjugationBlues extends App.Events. eventSlave.skin = randomRaceSkin(FSSubjugationistRace); setEyeColor(eventSlave, randomRaceEye(FSSubjugationistRace)); eventSlave.hColor = randomRaceHair(FSSubjugationistRace); - eventSlave.override_Skin = 1; - eventSlave.override_Eye_Color = 1; - eventSlave.override_H_Color = 1; + eventSlave.overrideSkin = 1; + eventSlave.overrideEyeColor = 1; + eventSlave.overrideHColor = 1; r.toParagraph(); return r.container(); } diff --git a/src/events/intro/arcologySelection.js b/src/events/intro/arcologySelection.js index 51e395c86af..1c05ac0d353 100644 --- a/src/events/intro/arcologySelection.js +++ b/src/events/intro/arcologySelection.js @@ -271,7 +271,7 @@ App.Intro.getNameForArcology = function(arcology) { case "FSMaturityPreferentialist": return App.Data.ArcologyNames.MaturityPreferentialist.random(); case "FSYouthPreferentialist": - if (V.pedo_mode === 1 || V.minimumSlaveAge < 6) { + if (V.pedoMode === 1 || V.minimumSlaveAge < 6) { return App.Data.ArcologyNames.YouthPreferentialistLow.random(); } else if (V.minimumSlaveAge < 14) { return App.Data.ArcologyNames.YouthPreferentialist.concat(App.Data.ArcologyNames.YouthPreferentialistLow).random(); diff --git a/src/events/intro/introSummary.js b/src/events/intro/introSummary.js index 62b954fe5ad..de9b46f9bb6 100644 --- a/src/events/intro/introSummary.js +++ b/src/events/intro/introSummary.js @@ -360,7 +360,7 @@ App.Intro.summary = function() { options.addOption("Slave aging", "seeAge") .addValue("Enabled", 1).on().addValue("Celebrate birthdays, but don't age.", 2).addValue("Disabled", 0).off(); - options.addOption("Slave age distribution", "pedo_mode").addComment("In loli mode most new slaves are under the age of 18. May not apply to custom slaves and slaves from specific events.") + options.addOption("Slave age distribution", "pedoMode").addComment("In loli mode most new slaves are under the age of 18. May not apply to custom slaves and slaves from specific events.") .addValue("Loli mode", 1, () => V.minimumSlaveAge = 5).addValue("Normal mode", 0); V.minimumSlaveAge = Math.clamp(V.minimumSlaveAge, 3, 18); diff --git a/src/events/intro/pcAppearance.js b/src/events/intro/pcAppearance.js index 4924ed20595..874873a53c3 100644 --- a/src/events/intro/pcAppearance.js +++ b/src/events/intro/pcAppearance.js @@ -508,6 +508,10 @@ App.UI.Player.assignCareerByAge = function(selection) { return career; }; +/** + * @param {InstanceType<App.UI.OptionsGroup>} options + * @param {boolean} blackMarket if true then black market exclusive refreshments will be listed for selection + */ App.UI.Player.refreshmentChoice = function(options, blackMarket = false) { let option = options.addOption("Your preferred refreshment is", "refreshmentType", V.PC); for (const [key, value] of App.Data.player.refreshmentType) { @@ -534,6 +538,9 @@ App.UI.Player.refreshmentChoice = function(options, blackMarket = false) { } }; +/** + * @param {InstanceType<App.UI.OptionsGroup>} options + */ App.UI.Player.names = function(options) { options.addCustomOption(`Everyone calls you <b>${PlayerName()}.</b>`); options.addOption("Your given name is", "slaveName", V.PC).showTextBox(); @@ -586,7 +593,7 @@ App.UI.Player.design = function() { .addRange(55, 65, "<", "Well into middle age").addRange(70, 65, ">=", "Old"); options.addOption(`Your birthday was <strong>${V.PC.birthWeek}</strong> weeks ago.`, "birthWeek", V.PC).showTextBox(); - option = options.addCustomOption() + option = options.addCustomOption("") .addButton( "Adjust body to match age", () => App.UI.Player.syncAgeBasedParameters(), @@ -1283,6 +1290,7 @@ App.UI.Player.design = function() { ["Engineering beginner", 30], ["Basic engineer", 0], ["Gingerbread house", -10], + // cSpell:disable-next-line ["Knot tyer", -30], ["You can use glue", -50], ["You aren't handy", -70], diff --git a/src/events/intro/slaveAgeIntro.js b/src/events/intro/slaveAgeIntro.js index 974393450cd..cb7e606dfb2 100644 --- a/src/events/intro/slaveAgeIntro.js +++ b/src/events/intro/slaveAgeIntro.js @@ -6,7 +6,7 @@ App.Intro.slaveAgeIntro = function() { makeOption([ App.UI.DOM.passageLink("No.", "PC Body Intro", () => { V.minimumSlaveAge = 18; - V.pedo_mode = 0; + V.pedoMode = 0; }), App.UI.DOM.makeElement("span", `All slaves will be at least 18 years old, and slavery of children will be illegal in the Free Cities.`, "note") ]); @@ -15,7 +15,7 @@ App.Intro.slaveAgeIntro = function() { `Yes, I wish to see girls as young as`, App.UI.DOM.makeTextBox(V.minimumSlaveAge, (v) => V.minimumSlaveAge = v, true), App.UI.DOM.passageLink("Continue.", "PC Body Intro", () => { - V.pedo_mode = 0; + V.pedoMode = 0; }), ]); @@ -23,7 +23,7 @@ App.Intro.slaveAgeIntro = function() { `Yes, and`, App.UI.DOM.passageLink("I just want lots of lolis.", "PC Body Intro", () => { V.minimumSlaveAge = 3; - V.pedo_mode = 1; + V.pedoMode = 1; }), App.UI.DOM.makeElement("span", `Nearly all randomly generated slaves will be under the age of 18, although custom slaves and slaves related to specific events may be older.`, "note") ]); @@ -32,7 +32,7 @@ App.Intro.slaveAgeIntro = function() { `Yes,`, App.UI.DOM.passageLink("I wish to see them grow up and become fertile.", "PC Body Intro", () => { V.minimumSlaveAge = 3; - V.pedo_mode = 0; + V.pedoMode = 0; V.precociousPuberty = 1; V.loliGrow = 1; V.fertilityAge = 10; diff --git a/src/events/nonRandom/mercs/pSlaveMedic.js b/src/events/nonRandom/mercs/pSlaveMedic.js index 4e3cad7ca87..a094647c0aa 100644 --- a/src/events/nonRandom/mercs/pSlaveMedic.js +++ b/src/events/nonRandom/mercs/pSlaveMedic.js @@ -4,8 +4,8 @@ App.Events.PSlaveMedic = class PSlaveMedic extends App.Events.BaseEvent { V.nextButton = "Continue"; - const minAge = (V.pedo_mode === 1) ? V.minimumSlaveAge : 18; - const maxAge = (V.pedo_mode === 1) ? 25 : 42; + const minAge = (V.pedoMode === 1) ? V.minimumSlaveAge : 18; + const maxAge = (V.pedoMode === 1) ? 25 : 42; const genParam = {minAge: minAge, maxAge: maxAge, disableDisability: 1}; let slave; @@ -25,7 +25,7 @@ App.Events.PSlaveMedic = class PSlaveMedic extends App.Events.BaseEvent { slave.ovaries = 1; slave.skill.vaginal = 35; } - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { slave.sexualQuirk = "caring"; slave.intelligenceImplant = 15; if (slave.physicalAge >= 12) { @@ -83,7 +83,7 @@ App.Events.PSlaveMedic = class PSlaveMedic extends App.Events.BaseEvent { he, his, him, himself, girl, } = getPronouns(slave); - if (V.pedo_mode === 1 && V.seeDicks < 100) { + if (V.pedoMode === 1 && V.seeDicks < 100) { r.push(`You make a habit of dropping in on your mercenaries whenever you get the chance. You have regular meetings with their grizzled captain, of course, but turning up unannounced to get to know them is simply a matter of self-preservation. The better they like you, the more likely they are to think of more than their pay when deciding how to hazard themselves on your behalf. When you enter the lounge of their`); if (V.barracks) { r.push(`barracks,`); @@ -101,7 +101,7 @@ App.Events.PSlaveMedic = class PSlaveMedic extends App.Events.BaseEvent { r.push(`main living area,`); } r.push(`you see ${slave.slaveName} bending over a mercenary with most of his armor stripped off. ${He}'s the ${aNational(slave.nationality)} nurse they captured and enslaved, and ${he} seems to be doing pretty well in ${his} new life. ${He} seems to be checking the sutures on a minor wound to the man's flank. "Don't squirm," ${he} says quietly. "I'll get you off when I've checked this." He chuckles and holds still; ${he} redresses the wound, stands up, and strips off ${his} fatigue pants.`); - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { r.push(`${He}'s quite youthful, nimble and knows just how to manage ${his} impressive asset without it touching ${his} charge.`); } else { r.push(`${He}'s no longer young, but ${his} ${slave.skin} legs are pretty enough.`); diff --git a/src/events/nonRandom/mercs/pSnatchAndGrabResult.js b/src/events/nonRandom/mercs/pSnatchAndGrabResult.js index 6ea82caeec0..f85361734e8 100644 --- a/src/events/nonRandom/mercs/pSnatchAndGrabResult.js +++ b/src/events/nonRandom/mercs/pSnatchAndGrabResult.js @@ -11,8 +11,8 @@ App.Events.PSnatchAndGrabResult = class PSnatchAndGrabResult extends App.Events. V.nextButton = "Continue"; V.eventResults.snatch = 2; - const snatched = GenerateNewSlave("XX", {maxAge: (V.pedo_mode === 1 ? V.minimumSlaveAge : 18), disableDisability: 1}); - if (V.pedo_mode === 1) { + const snatched = GenerateNewSlave("XX", {maxAge: (V.pedoMode === 1 ? V.minimumSlaveAge : 18), disableDisability: 1}); + if (V.pedoMode === 1) { snatched.boobShape = "saggy"; snatched.nipples = "partially inverted"; snatched.areolae = 3; @@ -33,7 +33,7 @@ App.Events.PSnatchAndGrabResult = class PSnatchAndGrabResult extends App.Events. snatched.waist = -75; } - snatched.faceShape = (V.pedo_mode === 1 ? "exotic" : "androgynous"); + snatched.faceShape = (V.pedoMode === 1 ? "exotic" : "androgynous"); snatched.anus = 0; if (V.seeDicks !== 100) { snatched.vagina = 0; @@ -44,7 +44,7 @@ App.Events.PSnatchAndGrabResult = class PSnatchAndGrabResult extends App.Events. snatched.balls = 0; snatched.scrotum = 0; } else if (V.seeDicks > 75) { - snatched.dick = (V.pedo_mode === 1 ? 2 : 6); + snatched.dick = (V.pedoMode === 1 ? 2 : 6); if (snatched.foreskin > 0) { snatched.foreskin = snatched.dick; } @@ -57,8 +57,8 @@ App.Events.PSnatchAndGrabResult = class PSnatchAndGrabResult extends App.Events. snatched.scrotum = snatched.balls; } - snatched.boobs += (V.pedo_mode === 1 ? 6000 : 200); - snatched.butt += (V.pedo_mode === 1 ? 1 : 2); + snatched.boobs += (V.pedoMode === 1 ? 6000 : 200); + snatched.butt += (V.pedoMode === 1 ? 1 : 2); snatched.origin = "$He is your share of a raid on an illegal laboratory by your mercenaries."; snatched.career = "a slave"; snatched.devotion = 100; diff --git a/src/events/nonRandom/pAidResult.js b/src/events/nonRandom/pAidResult.js index 5be299dbe3a..883e1e3dd2e 100644 --- a/src/events/nonRandom/pAidResult.js +++ b/src/events/nonRandom/pAidResult.js @@ -152,7 +152,7 @@ App.Events.pAidResult = class pAidResult extends App.Events.BaseEvent { } else if (V.eventResults.aidTarget === "maternity") { for (let i = 0; i < 4; i++) { const pram = {mature: 0, disableDisability: 1, ageOverridesPedoMode: 1}; - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { pram.minAge = V.fertilityAge; } else { pram.minAge = 20; @@ -278,7 +278,7 @@ App.Events.pAidResult = class pAidResult extends App.Events.BaseEvent { pram.disableDisability = 1; pram.ageOverridesPedoMode = 1; pram.race = "white"; - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { pram.minAge = 18; pram.maxAge = 24; } else { @@ -322,7 +322,7 @@ App.Events.pAidResult = class pAidResult extends App.Events.BaseEvent { newSlaves.push(missLeader); /* preggo */ - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { pram.minAge = 16; pram.maxAge = 18; } else { @@ -365,7 +365,7 @@ App.Events.pAidResult = class pAidResult extends App.Events.BaseEvent { newSlaves.push(slave); /* post preggo */ - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { pram.minAge = 16; pram.maxAge = 18; } else { diff --git a/src/events/nonRandom/pregnancyNotice.js b/src/events/nonRandom/pregnancyNotice.js index 870d9611d84..65a51e637fd 100644 --- a/src/events/nonRandom/pregnancyNotice.js +++ b/src/events/nonRandom/pregnancyNotice.js @@ -310,7 +310,6 @@ App.Events.PregnancyNotice.Event = (node, mother) => { `${num(transplantedBabyCount)} of them ${(transplantedBabyCount === 1) ? "was": "are"} transplanted.`), ); } - // TODO:@franklygeorge mother's (If not PC) info (Same as main screen). // TODO:@franklygeorge list out each group of babies and how old they are (See how the slave description does it for superfetation) let unprocessedDiv = App.UI.DOM.makeElement("div"); diff --git a/src/events/nonRandom/rival/pRivalryCapture.js b/src/events/nonRandom/rival/pRivalryCapture.js index ef7f3317931..8992ebf0f66 100644 --- a/src/events/nonRandom/rival/pRivalryCapture.js +++ b/src/events/nonRandom/rival/pRivalryCapture.js @@ -82,7 +82,7 @@ globalThis.pRivalryCapture = function(condition) { rivalTypeArray.push("masculine"); rivalTypeArray.push("micropenis"); rivalTypeArray.push("cum addict"); - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { rivalTypeArray.push("hung shota"); } } else { @@ -93,7 +93,7 @@ globalThis.pRivalryCapture = function(condition) { if (V.seePreg === 1) { rivalTypeArray.push("breeder"); } - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { rivalTypeArray.push("oppai loli"); } } @@ -314,7 +314,7 @@ globalThis.pRivalryCapture = function(condition) { slave.hLength = 5; break; case "breeder": - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { minAge = (V.fertilityAge + 6); pedo = 1; /* Old enough to have been pregnant many times. */ diff --git a/src/events/nonRandom/rival/pRivalryHostage.js b/src/events/nonRandom/rival/pRivalryHostage.js index 952e20a203c..9255b0b8767 100644 --- a/src/events/nonRandom/rival/pRivalryHostage.js +++ b/src/events/nonRandom/rival/pRivalryHostage.js @@ -540,7 +540,7 @@ App.Events.pRivalryHostage = function() { }, servant() { setHostageAge(18, 20); - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { params.minAge = Math.min(params.minAge, 12); params.maxAge = Math.min(params.maxAge, 18); } @@ -592,7 +592,7 @@ App.Events.pRivalryHostage = function() { }, BlackHat() { setHostageAge(18, 21); - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { params.minAge = Math.min(params.minAge, 12); params.maxAge = Math.min(params.maxAge, 18); } @@ -714,8 +714,8 @@ App.Events.pRivalryHostage = function() { }, "arcology owner"() { // fixed age range for this one - params.minAge = V.pedo_mode ? 16 : 36; - params.maxAge = V.pedo_mode ? 18 : 39; + params.minAge = V.pedoMode ? 16 : 36; + params.maxAge = V.pedoMode ? 18 : 39; const slave = GenerateNewSlave("XX", params); setCommonProperties(slave); slave.career = "a leading arcology citizen"; diff --git a/src/events/reRecruit/blessedVessel.js b/src/events/reRecruit/blessedVessel.js index ad9269762cb..80e84d394d7 100644 --- a/src/events/reRecruit/blessedVessel.js +++ b/src/events/reRecruit/blessedVessel.js @@ -87,7 +87,7 @@ App.Events.recBlessedVessel = class recBlessedVessel extends App.Events.BaseEven function makeSlave() { const slave = GenerateNewSlave("XX", { minAge: V.fertilityAge, - maxAge: (V.pedo_mode === 1 ? 18 : 22), + maxAge: (V.pedoMode === 1 ? 18 : 22), ageOverridesPedoMode: 1, disableDisability: 1 }); slave.origin = "$He was the holy vessel of a new religion and 'blessed' by their Lord to bring forth His servants."; diff --git a/src/events/reRecruit/blessedVirgin.js b/src/events/reRecruit/blessedVirgin.js index a6cb1427c08..4978a62f00e 100644 --- a/src/events/reRecruit/blessedVirgin.js +++ b/src/events/reRecruit/blessedVirgin.js @@ -86,7 +86,7 @@ App.Events.recBlessedVirgin = class recBlessedVirgin extends App.Events.BaseEven function makeSlave() { const slave = GenerateNewSlave("XX", { minAge: V.fertilityAge, - maxAge: (V.pedo_mode === 1 ? 18 : 22), + maxAge: (V.pedoMode === 1 ? 18 : 22), ageOverridesPedoMode: 1, disableDisability: 1 }); slave.origin = "$He was the virgin figurehead of a new religion and 'blessed' by their Lord."; diff --git a/src/events/reRecruit/blindHomeless.js b/src/events/reRecruit/blindHomeless.js index 49c2ff45777..397fe0ba1e2 100644 --- a/src/events/reRecruit/blindHomeless.js +++ b/src/events/reRecruit/blindHomeless.js @@ -85,7 +85,7 @@ App.Events.recBlindHomeless = class recBlindHomeless extends App.Events.BaseEven pram.ageOverridesPedoMode = 1; pram.disableDisability = 1; pram.race = "nonslave"; - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { pram.minAge = V.fertilityAge; } else { pram.minAge = 18; diff --git a/src/events/reRecruit/desperatePreg.js b/src/events/reRecruit/desperatePreg.js index 18f850f6643..d5275fda0d4 100644 --- a/src/events/reRecruit/desperatePreg.js +++ b/src/events/reRecruit/desperatePreg.js @@ -67,7 +67,7 @@ App.Events.recDesperatePreg = class recDesperatePreg extends App.Events.BaseEven pram.ageOverridesPedoMode = 1; pram.disableDisability = 1; pram.race = "nonslave"; - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { pram.minAge = V.fertilityAge; } else if (V.minimumSlaveAge < 18) { pram.minAge = Math.min(25, V.fertilityAge); diff --git a/src/events/reRecruit/embryoAppropriation.js b/src/events/reRecruit/embryoAppropriation.js index 51c3eeda6bd..f86611ee142 100644 --- a/src/events/reRecruit/embryoAppropriation.js +++ b/src/events/reRecruit/embryoAppropriation.js @@ -80,7 +80,7 @@ App.Events.recEmbryoAppropriation = class recEmbryoAppropriation extends App.Eve function makeSlave() { const pram = new GenerateNewSlavePram(); pram.minAge = Math.max(V.fertilityAge, 8); - pram.maxAge = (V.pedo_mode === 1 ? 16 : 22); + pram.maxAge = (V.pedoMode === 1 ? 16 : 22); pram.ageOverridesPedoMode = 1; pram.race = "nonslave"; const slave = GenerateNewSlave("XX", pram); diff --git a/src/events/reRecruit/farmBull.js b/src/events/reRecruit/farmBull.js index 1833da7799d..c2650900aeb 100644 --- a/src/events/reRecruit/farmBull.js +++ b/src/events/reRecruit/farmBull.js @@ -56,7 +56,7 @@ App.Events.recFarmBull = class recFarmBull extends App.Events.BaseEvent { const pram = new GenerateNewSlavePram(); pram.maxAge = 15; pram.disableDisability = 1; - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { pram.minAge = V.potencyAge; pram.ageOverridesPedoMode = 1; } else { diff --git a/src/events/reRecruit/farmCow.js b/src/events/reRecruit/farmCow.js index 085e0fa98ea..7ad20ffc8e8 100644 --- a/src/events/reRecruit/farmCow.js +++ b/src/events/reRecruit/farmCow.js @@ -57,7 +57,7 @@ App.Events.recFarmCow = class recFarmCow extends App.Events.BaseEvent { const pram = new GenerateNewSlavePram(); pram.maxAge = 30; pram.disableDisability = 1; - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { pram.minAge = V.fertilityAge + 4; pram.ageOverridesPedoMode = 1; } else { diff --git a/src/events/reRecruit/femaleRecruit.js b/src/events/reRecruit/femaleRecruit.js index 6deaad1e45b..dc316d307b8 100644 --- a/src/events/reRecruit/femaleRecruit.js +++ b/src/events/reRecruit/femaleRecruit.js @@ -81,7 +81,7 @@ App.Events.recFemaleRecruit = class recFemaleRecruit extends App.Events.BaseEven function makeSlave() { const pram = new GenerateNewSlavePram(); - pram.minAge = (V.pedo_mode === 1 ? 11 : 16); + pram.minAge = (V.pedoMode === 1 ? 11 : 16); pram.maxAge = 19; pram.ageOverridesPedoMode = 1; pram.disableDisability = 1; diff --git a/src/events/reRecruit/femaleSD2.js b/src/events/reRecruit/femaleSD2.js index 71564dec083..48dd74a73d7 100644 --- a/src/events/reRecruit/femaleSD2.js +++ b/src/events/reRecruit/femaleSD2.js @@ -122,7 +122,7 @@ App.Events.recFemaleSD2 = class recFemaleSD2 extends App.Events.BaseEvent { slave.piercing.vagina.weight = 1; slave.piercing.eyebrow.weight = 1; slave.piercing.navel.weight = 1; - slave.override_H_Color = 1; + slave.overrideHColor = 1; slave.hColor = either("blue", "green", "purple"); return slave; } diff --git a/src/events/reRecruit/maleRecruit.js b/src/events/reRecruit/maleRecruit.js index dc43f6bdad2..d8c20d59bb1 100644 --- a/src/events/reRecruit/maleRecruit.js +++ b/src/events/reRecruit/maleRecruit.js @@ -78,7 +78,7 @@ App.Events.recMaleRecruit = class recMaleRecruit extends App.Events.BaseEvent { function makeSlave() { const pram = new GenerateNewSlavePram(); - pram.minAge = (V.pedo_mode === 1 ? 11 : 16); + pram.minAge = (V.pedoMode === 1 ? 11 : 16); pram.maxAge = 19; pram.ageOverridesPedoMode = 1; pram.disableDisability = 1; diff --git a/src/events/reRecruit/princelyBetrayal.js b/src/events/reRecruit/princelyBetrayal.js index 067448a3852..1a6c4c82c80 100644 --- a/src/events/reRecruit/princelyBetrayal.js +++ b/src/events/reRecruit/princelyBetrayal.js @@ -60,8 +60,8 @@ App.Events.recPrincelyBetrayal = class recPrincelyBetrayal extends App.Events.Ba function makeSlave() { const slave = GenerateNewSlave("XY", { - minAge: (V.pedo_mode === 1 ? 16 : 20), - maxAge: (V.pedo_mode === 1 ? 20 : 35), + minAge: (V.pedoMode === 1 ? 16 : 20), + maxAge: (V.pedoMode === 1 ? 20 : 35), ageOverridesPedoMode: 1, disableDisability: 1 }); slave.face = random(80, 100); diff --git a/src/events/reRecruit/racerLoser.js b/src/events/reRecruit/racerLoser.js index 61677dcbc57..50e6a5b8fc4 100644 --- a/src/events/reRecruit/racerLoser.js +++ b/src/events/reRecruit/racerLoser.js @@ -55,7 +55,7 @@ App.Events.recRacerLoser = class recRacerLoser extends App.Events.BaseEvent { function makeSlave() { const pram = new GenerateNewSlavePram(); pram.disableDisability = 1; - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { pram.minAge = V.fertilityAge; pram.ageOverridesPedoMode = 1; } else { diff --git a/src/events/reRecruit/whoreRecruit.js b/src/events/reRecruit/whoreRecruit.js index 9f57776c34b..4e4ff7afc36 100644 --- a/src/events/reRecruit/whoreRecruit.js +++ b/src/events/reRecruit/whoreRecruit.js @@ -72,7 +72,7 @@ App.Events.recWhoreRecruit = class recWhoreRecruit extends App.Events.BaseEvent const pram = new GenerateNewSlavePram(); pram.disableDisability = 1; pram.race = "nonslave"; - if (V.minimumSlaveAge < 14 && V.pedo_mode === 0) { + if (V.minimumSlaveAge < 14 && V.pedoMode === 0) { pram.minAge = random(V.minimumSlaveAge, 14); } const slave = GenerateNewSlave("XX", pram); diff --git a/src/events/recETS/recetsDesperateBroodmother.js b/src/events/recETS/recetsDesperateBroodmother.js index b8480be5885..1043ab0f921 100644 --- a/src/events/recETS/recetsDesperateBroodmother.js +++ b/src/events/recETS/recetsDesperateBroodmother.js @@ -17,7 +17,7 @@ App.Events.recetsDesperateBroodmother = class recetsDesperateBroodmother extends App.UI.StoryCaption.encyclopedia = "Enslaving People"; const contractCost = 1000; const pram = { - minAge: V.fertilityAge + 3, maxAge: (V.pedo_mode === 1 ? 18 : 24), disableDisability: 1, ageOverridesPedoMode: 1 + minAge: V.fertilityAge + 3, maxAge: (V.pedoMode === 1 ? 18 : 24), disableDisability: 1, ageOverridesPedoMode: 1 }; const mother = GenerateNewSlave("XX", pram); mother.origin = "$He begged to be enslaved in a desperate attempt to provide for $his many children."; diff --git a/src/events/recFS/recfsPastoralist.js b/src/events/recFS/recfsPastoralist.js index 3b85dbfe4b0..4e060a4abeb 100644 --- a/src/events/recFS/recfsPastoralist.js +++ b/src/events/recFS/recfsPastoralist.js @@ -10,7 +10,7 @@ App.Events.recFSPastoralist = class recFSPastoralist extends App.Events.BaseEven let r = []; const contractCost = sexSlaveContractCost(); const pram = {disableDisability: 1}; - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { pram.minAge = V.fertilityAge; pram.maxAge = 21; pram.ageOverridesPedoMode = 1; /* Can lactate. */ diff --git a/src/events/recFS/recfsRepopulationEfforts.js b/src/events/recFS/recfsRepopulationEfforts.js index 1fc1d9ce210..9385466685d 100644 --- a/src/events/recFS/recfsRepopulationEfforts.js +++ b/src/events/recFS/recfsRepopulationEfforts.js @@ -9,7 +9,7 @@ App.Events.recFSRepopulationEfforts = class recFSRepopulationEfforts extends App execute(node) { let r = []; const pram = {disableDisability: 1}; - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { pram.minAge = V.fertilityAge; pram.maxAge = 18; pram.ageOverridesPedoMode = 1; diff --git a/src/events/recFS/recfsRepopulationEffortsTwo.js b/src/events/recFS/recfsRepopulationEffortsTwo.js index 409d6980d58..7d9f71c2dec 100644 --- a/src/events/recFS/recfsRepopulationEffortsTwo.js +++ b/src/events/recFS/recfsRepopulationEffortsTwo.js @@ -16,7 +16,7 @@ App.Events.recFSRepopulationEffortsTwo = class recFSRepopulationEffortsTwo exten execute(node) { let r = []; const pram = {disableDisability: 1}; - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { pram.minAge = V.fertilityAge; pram.maxAge = 18; pram.ageOverridesPedoMode = 1; diff --git a/src/events/scheduled/seRaiding.js b/src/events/scheduled/seRaiding.js index 44f3e0e106a..f256a133aa0 100644 --- a/src/events/scheduled/seRaiding.js +++ b/src/events/scheduled/seRaiding.js @@ -158,7 +158,7 @@ App.Events.SERaiding = class SERaiding extends App.Events.BaseEvent { r.push(`is the recording studio of a sleepy old world town's local news channel. The news channel itself is unremarkable, a quaint reminder of the tedious life of a small town, save for its news anchor. The anchor stands in stark contrast to ${his} fellow residents by the abundance of ${his} plastic surgery, likely an attempt to cling to youth lest ${his} coveted anchor position be snatched away by a younger ${woman}.`); break; case "classical dancer": - r.push(`is the performing arts theater at the heart of an aristocratic old world city. The theater itself would usually not be considered a choice target, except that tonight its stage is graced by a renowned dance troupe. The jewel of the troupe's cast is a young ${girl}${(V.pedo_mode === 0) ? `, barely past ${his} majority,` : ``} whose performance has been said to bring tears to the eyes of audiences the world over.`); + r.push(`is the performing arts theater at the heart of an aristocratic old world city. The theater itself would usually not be considered a choice target, except that tonight its stage is graced by a renowned dance troupe. The jewel of the troupe's cast is a young ${girl}${(V.pedoMode === 0) ? `, barely past ${his} majority,` : ``} whose performance has been said to bring tears to the eyes of audiences the world over.`); break; case "law enforcement officer": r.push(`is the precinct of a small old world town's police department. The department is notoriously underfunded and unlikely to be particularly well staffed. Nonetheless, one of the officers is well known in the area for ${his} adherence to the letter of the law despite ${his} small town cop status.`); @@ -493,7 +493,7 @@ App.Events.SERaiding = class SERaiding extends App.Events.BaseEvent { break; case "military soldier": pram = {disableDisability: 1, minAge: 18}; - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { pram.ageOverridesPedoMode = 1; } else { pram.maxAge = 25; @@ -651,7 +651,7 @@ App.Events.SERaiding = class SERaiding extends App.Events.BaseEvent { break; case "law enforcement officer": pram = {minAge: 18, disableDisability: 1}; - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { pram.ageOverridesPedoMode = 1; } else { pram.maxAge = 25; diff --git a/src/events/scheduled/seTheSirenStrikesBack.js b/src/events/scheduled/seTheSirenStrikesBack.js index 51f6991c31e..8bb5b96d358 100644 --- a/src/events/scheduled/seTheSirenStrikesBack.js +++ b/src/events/scheduled/seTheSirenStrikesBack.js @@ -18,7 +18,7 @@ App.Events.SETheSirenStrikesBack = class SETheSirenStrikesBack extends App.Event const swan = getSlave(this.actors[0]); // may be undefined, if the swan was sold/killed since recPaternalistSwanSong - const minAge = (V.pedo_mode === 1) ? 16 : 30; + const minAge = (V.pedoMode === 1) ? 16 : 30; const producer = GenerateNewSlave(null, { minAge: minAge, maxAge: 40, ageOverridesPedoMode: 1, disableDisability: 1 }); diff --git a/src/facilities/nursery/utils/nurseryUtils.js b/src/facilities/nursery/utils/nurseryUtils.js index abbb52e96bb..3a556f8ec51 100644 --- a/src/facilities/nursery/utils/nurseryUtils.js +++ b/src/facilities/nursery/utils/nurseryUtils.js @@ -245,15 +245,13 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) { child.origSkin = child.skin; child.ovaries = child.genes === "XX" ? 1 : 0; child.ovaryAge = child.actualAge; - /* eslint-disable camelcase */ - child.override_Arm_H_Color = 0; - child.override_Brow_H_Color = 0; - child.override_Eye_Color = 0; - child.override_H_Color = 0; - child.override_Pubic_H_Color = 0; - child.override_Race = 0; - child.override_Skin = 0; - /* eslint-enable camelcase */ + child.overrideArmHColor = 0; + child.overrideBrowHColor = 0; + child.overrideEyeColor = 0; + child.overrideHColor = 0; + child.overridePubicHColor = 0; + child.overrideRace = 0; + child.overrideSkin = 0; child.physicalAge = child.actualAge; child.porn = new App.Entity.SlavePornPerformanceState(); child.pregAdaptation = 50; @@ -602,34 +600,32 @@ App.Facilities.Nursery.newChild = function newChild(child) { child.actualAge = 0; child.birthWeek = 0; - if (child.override_Race !== 1) { + if (child.overrideRace !== 1) { child.origRace = child.race; } - if (child.override_H_Color !== 1) { + if (child.overrideHColor !== 1) { child.hColor = getGeneticHairColor(child); } - if (child.override_Arm_H_Color !== 1) { + if (child.overrideArmHColor !== 1) { child.underArmHColor = getGeneticHairColor(child); } - if (child.override_Pubic_H_Color !== 1) { + if (child.overridePubicHColor !== 1) { child.pubicHColor = getGeneticHairColor(child); } - if (child.override_Brow_H_Color !== 1) { + if (child.overrideBrowHColor !== 1) { child.eyebrowHColor = getGeneticHairColor(child); } - if (child.override_Skin !== 1) { + if (child.overrideSkin !== 1) { child.origSkin = getGeneticSkinColor(child); } - /* eslint-disable camelcase*/ - child.override_Race = 0; - child.override_H_Color = 0; - child.override_Arm_H_Color = 0; - child.override_Pubic_H_Color = 0; - child.override_Brow_H_Color = 0; - child.override_Skin = 0; - child.override_Eye_Color = 0; - /* eslint-enable */ + child.overrideRace = 0; + child.overrideHColor = 0; + child.overrideArmHColor = 0; + child.overridePubicHColor = 0; + child.overrideBrowHColor = 0; + child.overrideSkin = 0; + child.overrideEyeColor = 0; child.arm = { left: new App.Entity.ArmState(), diff --git a/src/facilities/studio/studio.js b/src/facilities/studio/studio.js index 021795f0e95..acd5714c7cc 100644 --- a/src/facilities/studio/studio.js +++ b/src/facilities/studio/studio.js @@ -173,7 +173,9 @@ App.UI.mediaStudio = function() { r.push(App.UI.DOM.makeElement("span", "not making porn.", ["red"])); } const f2 = new DocumentFragment(); - App.UI.SlaveSummaryImpl.bits.long.porn_prestige(slave, f2); // why do these bits not just return the element? + App.UI.SlaveSummaryImpl.bits.long.pornPrestige(slave, f2); // why do these bits not just return the element? + // because returning function handles instead of running all of them makes what the line above is doing much faster + // don't do extra processing that you will just throw away in some cases (when it is possible to do so) App.UI.SlaveSummaryImpl.bits.long.face(slave, f2); r.push(f2); if (V.studioFeed && slave.porn.feed) { diff --git a/src/gui/Encyclopedia/encyclopediaMods.js b/src/gui/Encyclopedia/encyclopediaMods.js index 413d12e81ce..9394e8ffc1e 100644 --- a/src/gui/Encyclopedia/encyclopediaMods.js +++ b/src/gui/Encyclopedia/encyclopediaMods.js @@ -569,7 +569,7 @@ App.Encyclopedia.addCategory("Mods", function(currentArticle) { App.Events.addNode(f, ["Special Force Mod:", App.UI.DOM.generateLinksStrip([App.Encyclopedia.link("Details", "Special Force")])], "div"); App.Events.addNode(f, ["Security Expansion Mod:", App.UI.DOM.generateLinksStrip([App.Encyclopedia.link("Details", "Security Expansion"), App.Encyclopedia.link("Battles")])], "div"); - if ((V.pedo_mode === 0 && V.ui === "start") || V.pedo_mode) { + if ((V.pedoMode === 0 && V.ui === "start") || V.pedoMode) { r.push(App.Encyclopedia.link("Loli Mode")); r.push(App.Encyclopedia.link("Lolis and the Free Cities")); } diff --git a/src/init/storyInit.js b/src/init/storyInit.js index 16281efd191..5a8fd83283b 100644 --- a/src/init/storyInit.js +++ b/src/init/storyInit.js @@ -54,7 +54,7 @@ App.Intro.init = function() { V.weatherType = 1; V.weatherRemaining = 6; V.prisonCircuitIndex = random(0, V.prisonCircuit.length-1); - if (V.prisonCircuit[V.prisonCircuitIndex] === "juvenile detention" && (V.minimumSlaveAge >= 16 || V.pedo_mode === 1)) { + if (V.prisonCircuit[V.prisonCircuitIndex] === "juvenile detention" && (V.minimumSlaveAge >= 16 || V.pedoMode === 1)) { V.prisonCircuitIndex = 0; // skip juvenile detention if juvenile slaves are not allowed, or we're in pedo mode (where all prisoners are juvenile) } diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js index 9016b5e72d6..6836cc83617 100644 --- a/src/js/DefaultRules.js +++ b/src/js/DefaultRules.js @@ -6,7 +6,7 @@ /** * this code applies RA rules onto slaves * @param {App.Entity.SlaveState} slave - * @param {DefaultRulesOptions} options + * @param {DefaultRulesOptions} [options] * @returns {string} */ globalThis.DefaultRules = function(slave, options) { diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js index e4380e3979e..55c0ef2bca1 100644 --- a/src/js/SlaveState.js +++ b/src/js/SlaveState.js @@ -2835,16 +2835,21 @@ App.Entity.SlaveState = class SlaveState { }; /** flavor of their milk*/ this.milkFlavor = "none"; - /* eslint-disable camelcase*/ this.NCSyouthening = 0; - this.override_Race = 0; - this.override_Skin = 0; - this.override_Eye_Color = 0; - this.override_H_Color = 0; - this.override_Pubic_H_Color = 0; - this.override_Arm_H_Color = 0; - this.override_Brow_H_Color = 0; - /* eslint-enable */ + /** @type {FC.Bool} */ + this.overrideRace = 0; + /** @type {FC.Bool} */ + this.overrideSkin = 0; + /** @type {FC.Bool} */ + this.overrideEyeColor = 0; + /** @type {FC.Bool} */ + this.overrideHColor = 0; + /** @type {FC.Bool} */ + this.overridePubicHColor = 0; + /** @type {FC.Bool} */ + this.overrideArmHColor = 0; + /** @type {FC.Bool} */ + this.overrideBrowHColor = 0; /** erratic weight gain * * 0: stable; 1: gaining; -1: losing */ diff --git a/src/js/familyTreeJS.js b/src/js/familyTreeJS.js index fbacccc5e9d..f958b4fe230 100644 --- a/src/js/familyTreeJS.js +++ b/src/js/familyTreeJS.js @@ -1,4 +1,3 @@ -/* eslint-disable camelcase */ // cSpell:ignore ltype, dkeys, mkeys, ssym, ftree /** @@ -106,11 +105,11 @@ globalThis.renderFamilyTree = function(slaves, filterID) { }) .attr('class', 'node-text') .style('fill', function(d) { - if (d.is_mother && d.is_father) { + if (d.isMother && d.isFather) { return '#b84dff'; - } else if (d.is_father) { + } else if (d.isFather) { return '#00ffff'; - } else if (d.is_mother) { + } else if (d.isMother) { return '#ff3399'; } else if (d.unborn) { return '#a3a3c2'; @@ -159,9 +158,9 @@ globalThis.renderFamilyTree = function(slaves, filterID) { * @param {number} filterID */ globalThis.buildFamilyTree = function(slaves, filterID) { - let family_graph = {nodes: [], links: []}; - let node_lookup = {}; - let preset_lookup = { + let familyGraph = {nodes: [], links: []}; + let nodeLookup = {}; + let presetLookup = { '-2': 'A citizen', '-3': 'Former Master', '-4': 'An arcology owner', @@ -176,7 +175,7 @@ globalThis.buildFamilyTree = function(slaves, filterID) { let kids = {}; const realPC = slaves.deleteWith(s => s.ID === -1).first() || V.PC; - let fake_pc = { + let fakePC = { slaveName: `${realPC.slaveName}(You)`, mother: realPC.mother, father: realPC.father, @@ -184,7 +183,7 @@ globalThis.buildFamilyTree = function(slaves, filterID) { vagina: realPC.vagina, ID: realPC.ID }; - let charList = [fake_pc].concat(slaves).concat(V.incubator.tanks); + let charList = [fakePC].concat(slaves).concat(V.incubator.tanks); let unborn = {}; for (const child of V.incubator.tanks) { @@ -225,7 +224,7 @@ globalThis.buildFamilyTree = function(slaves, filterID) { ID: mom, mother: missing.mother, father: missing.father, - is_mother: true, + isMother: true, dick: missing.dick, vagina: missing.vagina, slaveName: missing.slaveName @@ -236,15 +235,15 @@ globalThis.buildFamilyTree = function(slaves, filterID) { } outmoms[mom].push(character.slaveName); } - } else if (mom < 0 && typeof preset_lookup[mom] !== 'undefined' && !haveChar(mom)) { + } else if (mom < 0 && typeof presetLookup[mom] !== 'undefined' && !haveChar(mom)) { charList.push({ ID: mom, mother: 0, father: 0, - is_father: true, + isFather: true, dick: 0, vagina: 1, - slaveName: preset_lookup[mom] + slaveName: presetLookup[mom] }); } @@ -256,7 +255,7 @@ globalThis.buildFamilyTree = function(slaves, filterID) { ID: dad, mother: missing.mother, father: missing.father, - is_father: true, + isFather: true, dick: missing.dick, vagina: missing.vagina, slaveName: missing.slaveName @@ -267,15 +266,15 @@ globalThis.buildFamilyTree = function(slaves, filterID) { } outdads[dad].push(character.slaveName); } - } else if (dad < 0 && typeof preset_lookup[dad] !== 'undefined' && !haveChar(dad)) { + } else if (dad < 0 && typeof presetLookup[dad] !== 'undefined' && !haveChar(dad)) { charList.push({ ID: dad, mother: 0, father: 0, - is_father: true, + isFather: true, dick: 1, vagina: -1, - slaveName: preset_lookup[dad] + slaveName: presetLookup[dad] }); } } @@ -296,7 +295,7 @@ globalThis.buildFamilyTree = function(slaves, filterID) { ID: key, mother: 0, father: 0, - is_mother: true, + isMother: true, dick: 0, vagina: 1, slaveName: `${name}'s mother` @@ -320,7 +319,7 @@ globalThis.buildFamilyTree = function(slaves, filterID) { ID: key, mother: 0, father: 0, - is_father: true, + isFather: true, dick: 1, vagina: -1, slaveName: `${name}'s father` @@ -385,55 +384,55 @@ globalThis.buildFamilyTree = function(slaves, filterID) { } for (const character of charList) { - let char_id = character.ID; - if (char_id !== filterID) { - if (character.mother === 0 && character.father === 0 && !kids[char_id]) { + let charID = character.ID; + if (charID !== filterID) { + if (character.mother === 0 && character.father === 0 && !kids[charID]) { continue; } - if (filterID && !related[char_id]) { + if (filterID && !related[charID]) { continue; } } - node_lookup[char_id] = family_graph.nodes.length; - let char_obj = { - ID: char_id, + nodeLookup[charID] = familyGraph.nodes.length; + let charObj = { + ID: charID, name: character.slaveName, dick: character.dick, - unborn: !!unborn[char_id], + unborn: !!unborn[charID], vagina: character.vagina }; - if (kids[char_id]) { - char_obj.is_mother = !!kids[char_id].mother; - char_obj.is_father = !!kids[char_id].father; + if (kids[charID]) { + charObj.isMother = !!kids[charID].mother; + charObj.isFather = !!kids[charID].father; } else { - char_obj.is_mother = false; - char_obj.is_father = false; + charObj.isMother = false; + charObj.isFather = false; } - family_graph.nodes.push(char_obj); + familyGraph.nodes.push(charObj); } for (const character of charList) { - let char_id = character.ID; - if (character.mother === 0 && character.father === 0 && !kids[char_id]) { + let charID = character.ID; + if (character.mother === 0 && character.father === 0 && !kids[charID]) { continue; } - if (filterID && !related[char_id]) { + if (filterID && !related[charID]) { continue; } - if (typeof node_lookup[character.mother] !== 'undefined') { + if (typeof nodeLookup[character.mother] !== 'undefined') { const ltype = (character.mother === character.father) ? 'homologous' : 'maternal'; - family_graph.links.push({ + familyGraph.links.push({ type: ltype, - target: node_lookup[char_id] * 1, - source: node_lookup[character.mother] * 1 + target: nodeLookup[charID] * 1, + source: nodeLookup[character.mother] * 1 }); } if (character.mother === character.father) { continue; } - if (typeof node_lookup[character.father] !== 'undefined') { - family_graph.links.push({type: 'paternal', target: node_lookup[char_id] * 1, source: node_lookup[character.father] * 1}); + if (typeof nodeLookup[character.father] !== 'undefined') { + familyGraph.links.push({type: 'paternal', target: nodeLookup[charID] * 1, source: nodeLookup[character.father] * 1}); } } - return family_graph; + return familyGraph; }; diff --git a/src/js/slaveSummaryHelpers.js b/src/js/slaveSummaryHelpers.js index 0ec1e69693b..8184cceb5f9 100644 --- a/src/js/slaveSummaryHelpers.js +++ b/src/js/slaveSummaryHelpers.js @@ -2,7 +2,6 @@ // Either keep this file above the slaveSummaryWidgets.js in the name ordered list // (tweego process them in this order), or rework the references. -/* eslint-disable camelcase */ // cSpell:ignore Natr App.UI.SlaveSummaryImpl = function() { @@ -506,7 +505,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_health(slave, c) { + function shortHealth(slave, c) { if (slave.health.health < -20) { makeSpan(c, "H", ["red", "strong"], true, slave.health.health); } else if (slave.health.health <= 20) { @@ -528,7 +527,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_illness(slave, c) { + function shortIllness(slave, c) { if (slave.health.illness > 2) { makeSpan(c, `Ill${slave.health.illness}`, ["red", "strong"], true, slave.health.illness); } else if (slave.health.illness > 0) { @@ -541,7 +540,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_tired(slave, c) { + function shortTired(slave, c) { helpers.makeRatedStyledSpan(c, data.short.health.tiredness, slave.health.tired, 0, true); } @@ -550,7 +549,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_health(slave, c) { + function longHealth(slave, c) { helpers.makeRatedStyledSpan(c, data.long.health.health, slave.health.health, 100, true); if (passage() === "Clinic" && V.clinicUpgradeScanner) { if (slave.chem > 15) { @@ -566,7 +565,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_illness(slave, c) { + function longIllness(slave, c) { makeRatedStyledSpan(c, data.long.health.illness, slave.health.illness, 0, true); } @@ -575,7 +574,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_tired(slave, c) { + function longTired(slave, c) { makeRatedStyledSpan(c, data.long.health.tiredness, slave.health.tired, 0, true); } @@ -584,7 +583,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_age(slave, c) { + function longAge(slave, c) { const style = "pink"; makeSpan(c, V.showAgeDetail ? `Age ${slave.actualAge}` : App.Ratings.numeric(data.long.body.age, slave.actualAge), style, true); /* @@ -623,7 +622,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_face(slave, c) { + function longFace(slave, c) { const r = App.Ratings.numeric(data.long.body.face, slave.face + 100); makeSpan(c, `${r.desc} ${slave.faceShape} face`, r.style, true, slave.face); } @@ -633,7 +632,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_eyes(slave, c) { + function longEyes(slave, c) { if (!canSee(slave)) { makeSpan(c, "Blind.", "red"); } else if (!canSeePerfectly(slave)) { @@ -646,7 +645,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_ears(slave, c) { + function longEars(slave, c) { if (slave.hears <= -2) { makeSpan(c, "Deaf.", "red"); } else if ((slave.hears === -1) && (slave.earwear !== "hearing aids")) { @@ -659,7 +658,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_lips(slave, c) { + function longLips(slave, c) { makeRatedStyledSpan(c, data.long.body.lips, slave.lips, 0, true); } @@ -668,7 +667,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_teeth(slave, c) { + function longTeeth(slave, c) { helpers.makeMappedStyledSpan(c, data.long.body.teeth, slave.teeth); } @@ -677,7 +676,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_muscles(slave, c) { + function longMuscles(slave, c) { const h = helpers; h.makeStyledSpan(c, App.Ratings.multiNumeric(data.long.body.muscles, [slave.muscles + 100, h.FSData.policy.PhysicalIdealist.active]), slave.muscles, true); } @@ -687,7 +686,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_voice(slave, c) { + function longVoice(slave, c) { if (slave.voice === 0) { makeSpan(c, "Mute.", "red"); } else { @@ -700,7 +699,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_tits_ass(slave, c) { + function longTitsAndAss(slave, c) { const h = helpers; h.makeStyledSpan(c, App.Ratings.multiNumeric(data.long.body.titsAss, @@ -712,7 +711,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_hips(slave, c) { + function longHips(slave, c) { const di = hipsAssRating(slave); if (di >= 0) { helpers.makeMappedStyledSpan(c, data.long.body.hipsAss, di); @@ -724,7 +723,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_waist(slave, c) { + function longWaist(slave, c) { makeRatedStyledSpan(c, data.long.body.waist, slave.waist, 100, true); } @@ -733,7 +732,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_implants(slave, c) { + function longImplants(slave, c) { const styles = "pink"; if ((slave.boobsImplant !== 0) || (slave.buttImplant !== 0) || (slave.lipsImplant !== 0) || (slave.bellyImplant !== -1)) { makeSpan(c, "Implants.", styles); @@ -749,7 +748,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_lactation(slave, c) { + function longLactation(slave, c) { if (slave.lactation === 1) { makeSpan(c, "Lactating naturally.", "pink"); } else if (slave.lactation === 2) { @@ -762,7 +761,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function milk_flavor(slave, c) { + function milkFlavor(slave, c) { if (slave.milkFlavor !== "none" && slave.lactation >= 1) { makeSpan(c, `${capFirstChar(slave.milkFlavor)} flavored milk.`, "pink"); } @@ -773,7 +772,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_mods(slave, c) { + function longMods(slave, c) { const modScore = SlaveStatsChecker.modScore(slave); if (slave.piercing.corset.weight === 0 && modScore.piercing < 3 && modScore.tat < 2) { return; @@ -792,7 +791,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_age(slave, c) { + function shortAge(slave, c) { let r = makeSpan(c, "", "pink"); if (V.showAgeDetail === 1) { r.textContent += slave.actualAge.toString(); @@ -814,7 +813,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_face(slave, c) { + function shortFace(slave, c) { makeRatedStyledSpan(c, data.short.body.face, slave.face, 100, true); } @@ -823,7 +822,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_eyes(slave, c) { + function shortEyes(slave, c) { if (!canSee(slave)) { makeSpan(c, "Blind", "red"); } else if (!canSeePerfectly(slave)) { @@ -836,7 +835,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_ears(slave, c) { + function shortEars(slave, c) { if (slave.hears === -2) { makeSpan(c, "Deaf", "red"); } else if ((slave.hears === -1) && (slave.earwear !== "hearing aids")) { @@ -849,7 +848,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_lips(slave, c) { + function shortLips(slave, c) { makeRatedStyledSpan(c, data.short.body.lips, slave.lips, 0, true); } @@ -858,7 +857,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_teeth(slave, c) { + function shortTeeth(slave, c) { helpers.makeMappedStyledSpan(c, data.short.body.teeth, slave.teeth); } @@ -867,7 +866,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_muscles(slave, c) { + function shortMuscles(slave, c) { const h = helpers; h.makeStyledSpan(c, App.Ratings.multiNumeric(data.short.body.muscles, [slave.muscles + 100, h.FSData.policy.PhysicalIdealist.active]), slave.muscles, true); } @@ -877,7 +876,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_voice(slave, c) { + function shortVoice(slave, c) { if (slave.voice === 0) { makeSpan(c, "Mute", "red"); } else { @@ -890,7 +889,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_tits_ass(slave, c) { + function shortTitsAndAss(slave, c) { const h = helpers; h.makeStyledSpan(c, App.Ratings.multiNumeric(data.short.body.titsAss, @@ -902,7 +901,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_hips(slave, c) { + function shortHips(slave, c) { const di = hipsAssRating(slave); if (di >= 0) { helpers.makeMappedStyledSpan(c, data.short.body.hipsAss, di); @@ -914,7 +913,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_waist(slave, c) { + function shortWaist(slave, c) { makeRatedStyledSpan(c, data.short.body.waist, slave.waist, 100, false); } @@ -923,7 +922,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_implants(slave, c) { + function shortImplants(slave, c) { if ((slave.boobsImplant === 0) && (slave.buttImplant === 0) && (slave.waist >= -95) && (slave.lipsImplant === 0) && (slave.faceImplant <= 5) && (slave.bellyImplant === -1)) { makeSpan(c, "Natr", "pink"); } else { @@ -936,7 +935,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_lactation(slave, c) { + function shortLactation(slave, c) { if (slave.lactation === 1) { makeSpan(c, "Lact", "pink"); } else if (slave.lactation === 2) { @@ -949,7 +948,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_mods(slave, c) { + function shortMods(slave, c) { const modScore = SlaveStatsChecker.modScore(slave); if (slave.piercing.corset.weight === 0 && modScore.piercing < 3 && modScore.tat < 2) { return; @@ -971,7 +970,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_intelligence(slave, c) { + function shortIntelligence(slave, c) { if (slave.fetish === Fetish.MINDBROKEN) { return; } @@ -986,7 +985,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_skills(slave, c) { + function shortSkills(slave, c) { const sd = data.short.skills; let SSkills = (slave.skill.anal + slave.skill.oral); let PSU = penetrativeSocialUse(); @@ -1010,7 +1009,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_prestige(slave, c) { + function shortPrestige(slave, c) { helpers.makeMappedStyledSpan(c, data.short.prestige, slave.prestige); } @@ -1019,7 +1018,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_porn_prestige(slave, c) { + function shortPornPrestige(slave, c) { helpers.makeMappedStyledSpan(c, data.short.pornPrestige, slave.porn.prestige); } @@ -1028,7 +1027,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_intelligence(slave, c) { + function longIntelligence(slave, c) { if (slave.fetish === Fetish.MINDBROKEN) { return; } @@ -1043,7 +1042,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_skills(slave, c) { + function longSkills(slave, c) { const sd = data.long.skills; let SSkills = (slave.skill.anal + slave.skill.oral); let PSU = penetrativeSocialUse(); @@ -1067,7 +1066,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_prestige(slave, c) { + function longPrestige(slave, c) { helpers.makeMappedStyledSpan(c, data.long.prestige, slave.prestige); } @@ -1076,7 +1075,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_porn_prestige(slave, c) { + function longPornPrestige(slave, c) { helpers.makeMappedStyledSpan(c, data.long.pornPrestige, slave.porn.prestige); } @@ -1085,7 +1084,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_clothes(slave, c) { + function longClothes(slave, c) { makeSpan(c, App.Ratings.exact(data.long.clothes, slave.clothes, 'Naked.')); } @@ -1094,7 +1093,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_collar(slave, c) { + function longCollar(slave, c) { helpers.makeMappedSpan(c, data.long.accessory.collar, slave.collar); } @@ -1103,7 +1102,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_mask(slave, c) { + function longMask(slave, c) { helpers.makeMappedSpan(c, data.long.accessory.faceAccessory, slave.faceAccessory); } @@ -1112,7 +1111,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_mouth(slave, c) { + function longMouth(slave, c) { helpers.makeMappedSpan(c, data.long.accessory.mouthAccessory, slave.mouthAccessory); } @@ -1121,7 +1120,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_belly(slave, c) { + function longBelly(slave, c) { helpers.makeMappedSpan(c, data.long.accessory.belly, slave.bellyAccessory); } @@ -1130,7 +1129,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_arms(slave, c) { + function longArms(slave, c) { if (["hand gloves", "elbow gloves"].includes(slave.armAccessory)) { makeSpan(c, slave.armAccessory, undefined, true); } @@ -1141,7 +1140,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_legs(slave, c) { + function longLegs(slave, c) { if (slave.legAccessory === "short stockings") { makeSpan(c, "Short stockings."); } else if (slave.legAccessory === "long stockings") { @@ -1154,7 +1153,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_shoes(slave, c) { + function longShoes(slave, c) { if (shoeHeelCategory(slave) > 0) { makeSpan(c, slave.shoes, undefined, true); } else if (slave.heels === 1) { @@ -1167,7 +1166,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_chastity(slave, c) { + function longChastity(slave, c) { if (slave.chastityAnus === 1 && slave.chastityPenis === 1 && slave.chastityVagina === 1) { makeSpan(c, "Full chastity."); } else if (slave.chastityPenis === 1 && slave.chastityVagina === 1) { @@ -1188,7 +1187,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_vaginal_acc(slave, c) { + function longVaginalAcc(slave, c) { if (slave.vaginalAttachment === "none") { helpers.makeMappedSpan(c, data.long.accessory.vaginal, slave.vaginalAccessory); } else { @@ -1208,7 +1207,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_dick_acc(slave, c) { + function longDickAcc(slave, c) { switch (slave.dickAccessory) { case "sock": makeSpan(c, "Cock sock."); @@ -1227,7 +1226,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_buttplug(slave, c) { + function longButtplug(slave, c) { helpers.makeMappedSpan(c, data.long.accessory.buttplug, slave.buttplug); helpers.makeMappedSpan(c, data.long.accessory.buttplugAttachment, slave.buttplugAttachment); } @@ -1237,7 +1236,10 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_fetish(slave, c) { + function shortFetish(slave, c) { + /** + * @param {App.Entity.SlaveState} slave + */ function fetishStr(slave) { const tbl = data.short.fetish[slave.fetish]; if (!tbl || typeof tbl === 'string') { @@ -1257,7 +1259,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_attraction(slave, c) { + function shortAttraction(slave, c) { const sd = data.short.sexDrive; // check for special cases first if (slave.energy > 95 && slave.attrXX > 95 && slave.attrXY > 95) { @@ -1277,7 +1279,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_smart_piercing(slave, c) { + function shortSmartPiercing(slave, c) { const s = smartFetishStr(slave, data.short.smartVibrator) || smartAttractionStr(slave, data.short.smartVibrator); if (s) { makeSpan(c, s); @@ -1289,7 +1291,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_behavior_flaw(slave, c) { + function shortBehaviorFlaw(slave, c) { helpers.makeMappedSpan(c, data.short.mental.behavioralFlaw, slave.behavioralFlaw, "red"); } @@ -1298,7 +1300,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_sex_flaw(slave, c) { + function shortSexFlaw(slave, c) { helpers.makeMappedStyledSpan(c, data.short.mental.sexualFlaw, slave.sexualFlaw); } @@ -1307,7 +1309,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_behavior_quirk(slave, c) { + function shortBehaviorQuirk(slave, c) { helpers.makeMappedSpan(c, data.short.mental.behavioralQuirk, slave.behavioralQuirk, "green"); } @@ -1316,7 +1318,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_sex_quirk(slave, c) { + function shortSexQuirk(slave, c) { helpers.makeMappedSpan(c, data.short.mental.sexualQuirk, slave.sexualQuirk, "green"); } @@ -1325,7 +1327,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_fetish(slave, c) { + function longFetish(slave, c) { function fetishStr() { const tbl = data.long.fetish[slave.fetish]; if (!tbl || typeof tbl === 'string') { @@ -1345,7 +1347,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_attraction(slave, c) { + function longAttraction(slave, c) { const sd = data.long.sexDrive; // check for special cases first @@ -1366,7 +1368,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_smart_piercing(slave, c) { + function longSmartPiercing(slave, c) { const s = smartFetishStr(slave, data.long.smartVibrator) || smartAttractionStr(slave, data.long.smartVibrator); if (s) { makeSpan(c, s); @@ -1378,7 +1380,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_behavior_flaw(slave, c) { + function longBehaviorFlaw(slave, c) { helpers.makeMappedSpan(c, data.long.mental.behavioralFlaw, slave.behavioralFlaw, "red"); } @@ -1387,7 +1389,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_sex_flaw(slave, c) { + function longSexFlaw(slave, c) { switch (slave.sexualFlaw) { case "hates oral": case "hates anal": @@ -1434,7 +1436,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_behavior_quirk(slave, c) { + function longBehaviorQuirk(slave, c) { switch (slave.behavioralQuirk) { case "confident": case "cutting": @@ -1458,7 +1460,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_sex_quirk(slave, c) { + function longSexQuirk(slave, c) { switch (slave.sexualQuirk) { case "gagfuck queen": case "painal queen": @@ -1482,7 +1484,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_family(slave, c) { + function shortFamily(slave, c) { helpers.renderFamily(c, slave, true); } @@ -1491,7 +1493,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_clone(slave, c) { + function shortClone(slave, c) { if (typeof slave.clone === "string") { makeSpan(c, "Clone"); } @@ -1502,7 +1504,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function short_rival(slave, c) { + function shortRival(slave, c) { if (slave.rivalry !== 0) { const block = makeBlock(c, "lightsalmon"); const ssj = V.slaves.find(s => s.ID === slave.rivalryTarget); @@ -1526,7 +1528,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_family(slave, c) { + function longFamily(slave, c) { helpers.renderFamily(c, slave, false); } @@ -1535,7 +1537,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_clone(slave, c) { + function longClone(slave, c) { if (typeof slave.clone === "string") { makeSpan(c, slave.clone === PlayerName() ? `Your clone.` : `Clone of ${slave.clone}.`, "deepskyblue"); } @@ -1546,7 +1548,7 @@ App.UI.SlaveSummaryImpl = function() { * @param {Node} c * @returns {void} */ - function long_rival(slave, c) { + function longRival(slave, c) { if (slave.rivalry !== 0) { const block = makeBlock(c); const ssj = V.slaves.find(s => s.ID === slave.rivalryTarget); @@ -1572,95 +1574,95 @@ App.UI.SlaveSummaryImpl = function() { return { long: { - health: long_health, - illness: long_illness, - tired: long_tired, - age: long_age, - face: long_face, - eyes: long_eyes, - ears: long_ears, - lips: long_lips, - teeth: long_teeth, - muscles: long_muscles, - voice: long_voice, - tits_ass: long_tits_ass, - hips: long_hips, - waist: long_waist, - implants: long_implants, - lactation: long_lactation, - milkflavor: milk_flavor, - mods: long_mods, - intelligence: long_intelligence, - skills: long_skills, - prestige: long_prestige, - porn_prestige: long_porn_prestige, - clothes: long_clothes, - collar: long_collar, - mask: long_mask, - mouth: long_mouth, - belly: long_belly, - arms: long_arms, - legs: long_legs, - shoes: long_shoes, - chastity: long_chastity, - vaginal_acc: long_vaginal_acc, - dick_acc: long_dick_acc, - buttplug: long_buttplug, - fetish: long_fetish, - attraction: long_attraction, - smart_piercing: long_smart_piercing, - behavior_flaw: long_behavior_flaw, - sex_flaw: long_sex_flaw, - behavior_quirk: long_behavior_quirk, - sex_quirk: long_sex_quirk, - family: long_family, - clone: long_clone, - rival: long_rival + health: longHealth, + illness: longIllness, + tired: longTired, + age: longAge, + face: longFace, + eyes: longEyes, + ears: longEars, + lips: longLips, + teeth: longTeeth, + muscles: longMuscles, + voice: longVoice, + titsAndAss: longTitsAndAss, + hips: longHips, + waist: longWaist, + implants: longImplants, + lactation: longLactation, + milkflavor: milkFlavor, + mods: longMods, + intelligence: longIntelligence, + skills: longSkills, + prestige: longPrestige, + pornPrestige: longPornPrestige, + clothes: longClothes, + collar: longCollar, + mask: longMask, + mouth: longMouth, + belly: longBelly, + arms: longArms, + legs: longLegs, + shoes: longShoes, + chastity: longChastity, + vaginalAcc: longVaginalAcc, + dickAcc: longDickAcc, + buttplug: longButtplug, + fetish: longFetish, + attraction: longAttraction, + smartPiercing: longSmartPiercing, + behaviorFlaw: longBehaviorFlaw, + sexFlaw: longSexFlaw, + behaviorQuirk: longBehaviorQuirk, + sexQuirk: longSexQuirk, + family: longFamily, + clone: longClone, + rival: longRival }, short: { - health: short_health, - illness: short_illness, - tired: short_tired, - age: short_age, - face: short_face, - eyes: short_eyes, - ears: short_ears, - lips: short_lips, - teeth: short_teeth, - muscles: short_muscles, - voice: short_voice, - tits_ass: short_tits_ass, - hips: short_hips, - waist: short_waist, - implants: short_implants, - lactation: short_lactation, - mods: short_mods, - intelligence: short_intelligence, - skills: short_skills, - prestige: short_prestige, - porn_prestige: short_porn_prestige, + health: shortHealth, + illness: shortIllness, + tired: shortTired, + age: shortAge, + face: shortFace, + eyes: shortEyes, + ears: shortEars, + lips: shortLips, + teeth: shortTeeth, + muscles: shortMuscles, + voice: shortVoice, + titsAndAss: shortTitsAndAss, + hips: shortHips, + waist: shortWaist, + implants: shortImplants, + lactation: shortLactation, + mods: shortMods, + intelligence: shortIntelligence, + skills: shortSkills, + prestige: shortPrestige, + pornPrestige: shortPornPrestige, /* - clothes: short_clothes, - collar: short_collar, - belly: short_belly, - arms: short_arms, - legs: short_legs, - shoes: short_shoes, - chastity: short_chastity, - vaginal_acc: short_vaginal_acc, - dick_acc: short_dick_acc, - buttplug: short_buttplug, + clothes: shortClothes, + collar: shortCollar, + belly: shortBelly, + arms: shortArms, + legs: shortLegs, + shoes: shortShoes, + chastity: shortChastity, + vaginalAcc: shortVaginalAcc, + dickAcc: shortDickAcc, + buttplug: shortButtplug, */ - fetish: short_fetish, - attraction: short_attraction, - smart_piercing: short_smart_piercing, - behavior_flaw: short_behavior_flaw, - sex_flaw: short_sex_flaw, - behavior_quirk: short_behavior_quirk, - sex_quirk: short_sex_quirk, - family: short_family, - clone: short_clone, - rival: short_rival + fetish: shortFetish, + attraction: shortAttraction, + smartPiercing: shortSmartPiercing, + behaviorFlaw: shortBehaviorFlaw, + sexFlaw: shortSexFlaw, + behaviorQuirk: shortBehaviorQuirk, + sexQuirk: shortSexQuirk, + family: shortFamily, + clone: shortClone, + rival: shortRival } }; }(); diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js index 54cd1e32384..ea36a71de2f 100644 --- a/src/js/slaveSummaryWidgets.js +++ b/src/js/slaveSummaryWidgets.js @@ -276,7 +276,7 @@ App.UI.SlaveSummaryRenderers = function() { b.muscles(slave, c); helpers.addText(c, App.Desc.shortLimbs(slave)); b.voice(slave, c); - b.tits_ass(slave, c); + b.titsAndAss(slave, c); b.hips(slave, c); b.waist(slave, c); b.implants(slave, c); @@ -315,12 +315,12 @@ App.UI.SlaveSummaryRenderers = function() { } } if (slave.piercing.genitals.smart || dildoVibeLevel(slave) > 1 || slave.dickAccessory === "smart bullet vibrator") { - b.smart_piercing(slave, c); + b.smartPiercing(slave, c); } - b.behavior_flaw(slave, c); - b.sex_flaw(slave, c); - b.behavior_quirk(slave, c); - b.sex_quirk(slave, c); + b.behaviorFlaw(slave, c); + b.sexFlaw(slave, c); + b.behaviorQuirk(slave, c); + b.sexQuirk(slave, c); }, /** @@ -333,7 +333,7 @@ App.UI.SlaveSummaryRenderers = function() { b.intelligence(slave, c); b.skills(slave, c); b.prestige(slave, c); - b.porn_prestige(slave, c); + b.pornPrestige(slave, c); }, /** @@ -647,7 +647,7 @@ App.UI.SlaveSummaryRenderers = function() { b.muscles(slave, c); helpers.makeSpan(c, App.Desc.longLimbs(slave)); b.voice(slave, c); - b.tits_ass(slave, c); + b.titsAndAss(slave, c); b.hips(slave, c); b.waist(slave, c); b.implants(slave, c); @@ -681,7 +681,7 @@ App.UI.SlaveSummaryRenderers = function() { b.intelligence(slave, c); b.skills(slave, c); b.prestige(slave, c); - b.porn_prestige(slave, c); + b.pornPrestige(slave, c); }, /** @@ -708,8 +708,8 @@ App.UI.SlaveSummaryRenderers = function() { b.shoes(slave, dressingBlock); } b.chastity(slave, dressingBlock); - b.vaginal_acc(slave, dressingBlock); - b.dick_acc(slave, dressingBlock); + b.vaginalAcc(slave, dressingBlock); + b.dickAcc(slave, dressingBlock); b.buttplug(slave, dressingBlock); }, @@ -729,12 +729,12 @@ App.UI.SlaveSummaryRenderers = function() { } } if (slave.piercing.genitals.smart || dildoVibeLevel(slave) > 1 || slave.dickAccessory === "smart bullet vibrator") { - b.smart_piercing(slave, c); + b.smartPiercing(slave, c); } - b.behavior_flaw(slave, c); - b.sex_flaw(slave, c); - b.behavior_quirk(slave, c); - b.sex_quirk(slave, c); + b.behaviorFlaw(slave, c); + b.sexFlaw(slave, c); + b.behaviorQuirk(slave, c); + b.sexQuirk(slave, c); }, /** @@ -753,6 +753,10 @@ App.UI.SlaveSummaryRenderers = function() { * @returns {void} */ nationality: function(slave, c) { + /** + * @param {App.Entity.SlaveState} slave + * @returns {string} + */ function descStr(slave) { switch (slave.nationality) { case "a Cook Islander": diff --git a/src/js/utilsSlave.js b/src/js/utilsSlave.js index f8b3a39e8d7..6e9b9a808c3 100644 --- a/src/js/utilsSlave.js +++ b/src/js/utilsSlave.js @@ -1399,22 +1399,22 @@ globalThis.deflate = function(slave) { * @param {App.Entity.SlaveState} slave */ globalThis.applyGeneticColor = function(slave) { - if (slave.override_Eye_Color !== 1) { + if (slave.overrideEyeColor !== 1) { resetEyeColor(slave, "both"); } - if (slave.override_H_Color !== 1) { + if (slave.overrideHColor !== 1) { slave.hColor = getGeneticHairColor(slave); } - if (slave.override_Arm_H_Color !== 1) { + if (slave.overrideArmHColor !== 1) { slave.underArmHColor = getGeneticHairColor(slave); } - if (slave.override_Pubic_H_Color !== 1) { + if (slave.overridePubicHColor !== 1) { slave.pubicHColor = getGeneticHairColor(slave); } - if (slave.override_Brow_H_Color !== 1) { + if (slave.overrideBrowHColor !== 1) { slave.eyebrowHColor = getGeneticHairColor(slave); } - if (slave.override_Skin !== 1) { + if (slave.overrideSkin !== 1) { if (!(slave.skin === "sun tanned" || slave.skin === "spray tanned")) { slave.skin = getGeneticSkinColor(slave); } @@ -1434,21 +1434,19 @@ globalThis.newSlave = function(slave) { slave = slave.beforeGingering; } - if (slave.override_Race !== 1) { + if (slave.overrideRace !== 1) { slave.origRace = slave.race; } applyGeneticColor(slave); - /* eslint-disable camelcase */ - slave.override_Race = 0; - slave.override_H_Color = 0; - slave.override_Arm_H_Color = 0; - slave.override_Pubic_H_Color = 0; - slave.override_Brow_H_Color = 0; - slave.override_Skin = 0; - slave.override_Eye_Color = 0; - /* eslint-enable camelcase */ + slave.overrideRace = 0; + slave.overrideHColor = 0; + slave.overrideArmHColor = 0; + slave.overridePubicHColor = 0; + slave.overrideBrowHColor = 0; + slave.overrideSkin = 0; + slave.overrideEyeColor = 0; // too tall to be a dwarf catch for event slaves if (slave.geneticQuirks.dwarfism === 2 && slave.geneticQuirks.gigantism !== 2 && slave.height > 165) { @@ -3249,6 +3247,8 @@ globalThis.slaveSkillIncrease = function(targetSkill, slave, skillIncrease = 1) /** * Considers societal standards and returns slave penetration skill if expected + * @param {App.Entity.SlaveState} [slave] + * @param {boolean} [specific=false] * @returns {number} adjusted penetration skill */ globalThis.adjustedPenSkill = function(slave, specific = false) { diff --git a/src/markets/specificMarkets/slaveShelter.js b/src/markets/specificMarkets/slaveShelter.js index b96800c6be4..cefddd349f6 100644 --- a/src/markets/specificMarkets/slaveShelter.js +++ b/src/markets/specificMarkets/slaveShelter.js @@ -76,7 +76,7 @@ App.Markets["Slave Shelter"] = function() { V.shelterSlave.behavioralFlaw = "hates men"; V.shelterSlave.sexualFlaw = "hates oral"; V.shelterSlave.canRecruit = 0; - V.shelterSlave.override_Eye_Color = 1; // TODO: Identifier 'override_Eye_Color' is not in camel case + V.shelterSlave.overrideEyeColor = 1; break; case "deaf": V.shelterSlave = GenerateNewSlave(null, {minAge: V.minimumSlaveAge, maxAge: 22, disableDisability: 1}); @@ -101,7 +101,7 @@ App.Markets["Slave Shelter"] = function() { applyMindbroken(V.shelterSlave, V.shelterSlave.intelligence); break; case "cannibal victim male": - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { pedo = 1; } else { maxAge = 42; @@ -125,7 +125,7 @@ App.Markets["Slave Shelter"] = function() { App.Medicine.Modification.addScar(V.shelterSlave, "pubic mound", "scars from $his crudely performed self-castration"); break; case "cannibal victim female": - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { pedo = 1; } else { maxAge = 42; @@ -253,7 +253,7 @@ App.Markets["Slave Shelter"] = function() { V.shelterSlave.sexualFlaw = either("hates anal", "hates oral", "hates penetration"); break; case "breeder": - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { minAge = (V.fertilityAge + 6); pedo = 1; // Old enough to have been pregnant many times. } else { diff --git a/src/markets/theMarket/marketData.js b/src/markets/theMarket/marketData.js index 11f2d6fc8c9..9867cd8fda0 100644 --- a/src/markets/theMarket/marketData.js +++ b/src/markets/theMarket/marketData.js @@ -72,11 +72,11 @@ App.Data.Markets = { note: "Very young slaves.", encyclopedia: "Kidnapped Slaves", get requirements() { - if (V.pedo_mode === 0 && V.minimumSlaveAge > 13) { + if (V.pedoMode === 0 && V.minimumSlaveAge > 13) { return false; } else if (V.rep <= 3000) { return `You are not reputable enough to buy underaged slaves.`; - } else { // if (V.pedo_mode === 1 || V.minimumSlaveAge <= 13) + } else { // if (V.pedoMode === 1 || V.minimumSlaveAge <= 13) return true; } } diff --git a/src/npc/children/ChildState.js b/src/npc/children/ChildState.js index 18e81db1dc2..b2a41285c78 100644 --- a/src/npc/children/ChildState.js +++ b/src/npc/children/ChildState.js @@ -1913,16 +1913,14 @@ App.Facilities.Nursery.ChildState = class ChildState { }; /** flavor of their milk*/ this.milkFlavor = "none"; - /* eslint-disable camelcase*/ this.NCSyouthening = 0; - this.override_Race = 0; - this.override_Skin = 0; - this.override_Eye_Color = 0; - this.override_H_Color = 0; - this.override_Pubic_H_Color = 0; - this.override_Arm_H_Color = 0; - this.override_Brow_H_Color = 0; - /* eslint-enable */ + this.overrideRace = 0; + this.overrideSkin = 0; + this.overrideEyeColor = 0; + this.overrideHColor = 0; + this.overridePubicHColor = 0; + this.overrideArmHColor = 0; + this.overrideBrowHColor = 0; /** Erratic weight gain * * 0: stable; 1: gaining; -1: losing */ diff --git a/src/npc/databases/dSlavesDatabase.js b/src/npc/databases/dSlavesDatabase.js index e4f95bb8d5b..05262cb98a6 100644 --- a/src/npc/databases/dSlavesDatabase.js +++ b/src/npc/databases/dSlavesDatabase.js @@ -1,4 +1,4 @@ -/* eslint-disable camelcase */ + /** * @type {FC.SlaveTemplate[]} */ @@ -117,6 +117,7 @@ App.Data.HeroSlaves.D = [ race: "white", origHColor: "red", hLength: 60, + // @ts-expect-error custom hair style hStyle: "wild", boobs: 500, butt: 2, @@ -151,6 +152,7 @@ App.Data.HeroSlaves.D = [ pubicHColor: "black", origSkin: "pale", hLength: 20, + // @ts-expect-error custom hair style hStyle: "styled with $his bangs covering one eye", boobs: 650, natural: {boobs: 200}, @@ -295,6 +297,7 @@ App.Data.HeroSlaves.D = [ pubicHColor: "black", origSkin: "black", hLength: 60, + // @ts-expect-error custom hair style hStyle: "curly", boobs: 1400, natural: {boobs: 600}, @@ -473,7 +476,7 @@ App.Data.HeroSlaves.D = [ origHColor: "black", hLength: 10, pubicHColor: "black", - override_Skin: 1, + overrideSkin: 1, origSkin: "spray tanned", boobs: 500, butt: 2, @@ -507,7 +510,7 @@ App.Data.HeroSlaves.D = [ eye: {origColor: "blue"}, origHColor: "blonde", pubicHColor: "blonde", - override_Skin: 1, + overrideSkin: 1, origSkin: "sun tanned", hLength: 60, hStyle: "neat", @@ -573,7 +576,7 @@ App.Data.HeroSlaves.D = [ weight: -20, height: 175, hLength: 15, - override_Skin: 1, + overrideSkin: 1, origSkin: "sun tanned", boobs: 500, butt: 2, @@ -608,8 +611,8 @@ App.Data.HeroSlaves.D = [ nationality: "Japanese", race: "asian", origHColor: "black", - override_H_Color: 1, - override_Pubic_H_Color: 1, + overrideHColor: 1, + overridePubicHColor: 1, hColor: "light purple", pubicHColor: "light purple", hLength: 10, @@ -681,8 +684,8 @@ App.Data.HeroSlaves.D = [ race: "white", eye: {origColor: "amber"}, origHColor: "brown", - override_H_Color: 1, - override_Pubic_H_Color: 1, + overrideHColor: 1, + overridePubicHColor: 1, hColor: "purple", pubicHColor: "purple", origSkin: "pale", @@ -752,7 +755,7 @@ App.Data.HeroSlaves.D = [ height: 175, race: "white", eye: {origColor: "green"}, - override_Skin: 1, + overrideSkin: 1, origSkin: "sun tanned", hLength: 30, hStyle: "neat", @@ -800,6 +803,7 @@ App.Data.HeroSlaves.D = [ pubicHColor: "black", origSkin: "brown", hLength: 25, + // @ts-expect-error custom hair style hStyle: "in a bob", boobs: 650, natural: {boobs: 400}, @@ -1102,6 +1106,7 @@ App.Data.HeroSlaves.D = [ pubicHColor: "blonde", origSkin: "white", hLength: 60, + // @ts-expect-error custom hair style hStyle: "curly and tied back in a ponytail", boobs: 400, butt: 1, @@ -1361,7 +1366,7 @@ App.Data.HeroSlaves.D = [ weight: -20, race: "white", eye: {origColor: "green"}, - override_H_Color: 1, + overrideHColor: 1, origHColor: "black", hColor: "black with blue highlights", origSkin: "white", @@ -1396,12 +1401,13 @@ App.Data.HeroSlaves.D = [ devotion: -75, height: 155, race: "white", - override_H_Color: 1, + overrideHColor: 1, origHColor: "blue", pubicHColor: "blue", - override_Skin: 1, + overrideSkin: 1, origSkin: "spray tanned", hLength: 10, + // @ts-expect-error custom hair style hStyle: "short, spiky, and with a long shoulder-length lock leading from $his temples down, one on each side", boobs: 650, vagina: 1, @@ -1816,9 +1822,10 @@ App.Data.HeroSlaves.D = [ health: {condition: 20}, devotion: -75, race: "amerindian", - override_Skin: 1, + overrideSkin: 1, origSkin: "sun tanned", hLength: 25, + // @ts-expect-error custom hair style hStyle: "in a bob", boobs: 400, butt: 3, @@ -1968,6 +1975,7 @@ App.Data.HeroSlaves.D = [ origHColor: "black", pubicHColor: "black", hLength: 15, + // @ts-expect-error custom hair style hStyle: "shaved on the left", boobs: 500, butt: 4, @@ -2080,7 +2088,7 @@ App.Data.HeroSlaves.D = [ race: "white", origSkin: "white", eye: {origColor: "blue"}, - override_H_Color: 1, + overrideHColor: 1, origHColor: "brown", hColor: "pale blonde", hLength: 95, @@ -2182,7 +2190,7 @@ App.Data.HeroSlaves.D = [ health: {condition: 20}, devotion: -25, race: "white", - override_H_Color: 1, + overrideHColor: 1, origHColor: "red", hColor: "bright red", origSkin: "white", @@ -2272,8 +2280,8 @@ App.Data.HeroSlaves.D = [ iris: "purple" } }, - override_Eye_Color: 1, - override_H_Color: 1, + overrideEyeColor: 1, + overrideHColor: 1, origHColor: "white", origSkin: "dark", hLength: 60, @@ -2514,7 +2522,7 @@ App.Data.HeroSlaves.D = [ health: {condition: 40}, devotion: 100, height: 178, - override_H_Color: 1, + overrideHColor: 1, race: "middle eastern", origHColor: "white", pubicHColor: "white", @@ -2545,7 +2553,7 @@ App.Data.HeroSlaves.D = [ health: {condition: 60}, devotion: -25, height: 175, - override_H_Color: 1, + overrideHColor: 1, race: "asian", origHColor: "blonde", pubicHColor: "blonde", @@ -2584,11 +2592,11 @@ App.Data.HeroSlaves.D = [ origRace: "white", race: "black", eye: {origColor: "blue-green"}, - override_H_Color: 1, - override_Brow_H_Color: 1, - override_Arm_H_Color: 1, - override_Pubic_H_Color: 1, - override_Skin: 1, + overrideHColor: 1, + overrideBrowHColor: 1, + overrideArmHColor: 1, + overridePubicHColor: 1, + overrideSkin: 1, origHColor: "fair blonde", eyebrowHColor: "blonde", pubicHColor: "blonde", @@ -2615,7 +2623,7 @@ App.Data.HeroSlaves.D = [ ovaryAge: 23, health: {condition: 20}, devotion: -90, - override_H_Color: 1, + overrideHColor: 1, race: "white", origHColor: "pink", pubicHColor: "pink", @@ -2650,15 +2658,16 @@ App.Data.HeroSlaves.D = [ weight: 20, height: 257, race: "middle eastern", - override_Brow_H_Color: 1, - override_Arm_H_Color: 1, - override_Pubic_H_Color: 1, + overrideBrowHColor: 1, + overrideArmHColor: 1, + overridePubicHColor: 1, origHColor: "black and oily", eyebrowHColor: "black", pubicHColor: "black", underArmHColor: "black", origSkin: "brown", hLength: 60, + // @ts-expect-error custom hair style hStyle: "shaved on the left side", boobs: 1200, butt: 4, @@ -2739,10 +2748,10 @@ App.Data.HeroSlaves.D = [ height: 155, nationality: "Mexican", race: "latina", - override_H_Color: 1, - override_Brow_H_Color: 1, - override_Arm_H_Color: 1, - override_Pubic_H_Color: 1, + overrideHColor: 1, + overrideBrowHColor: 1, + overrideArmHColor: 1, + overridePubicHColor: 1, origHColor: "dark red", eyebrowHColor: "red", pubicHColor: "red", @@ -2825,11 +2834,12 @@ App.Data.HeroSlaves.D = [ height: 155, race: "white", eye: {origColor: "blue-green"}, - override_H_Color: 1, + overrideHColor: 1, origHColor: "red", hColor: "bright red", origSkin: "pure white", hLength: 1200, + // @ts-expect-error custom hair style hStyle: "wavy", waist: -55, boobs: 800, @@ -2871,13 +2881,14 @@ App.Data.HeroSlaves.D = [ height: 145, race: "asian", nationality: "Japanese", - override_Eye_Color: 1, - override_H_Color: 1, + overrideEyeColor: 1, + overrideHColor: 1, eye: {origColor: "blue"}, origHColor: "blonde", pubicHColor: "blonde", origSkin: "fair", hLength: 60, + // @ts-expect-error custom hair style hStyle: "curly", waist: -55, boobs: 1000, @@ -2979,6 +2990,7 @@ App.Data.HeroSlaves.D = [ pubicHColor: "brown", origSkin: "black", hLength: 5, + // @ts-expect-error custom hair style hStyle: "a poor emulation of a military cut", boobs: 250, butt: 5, @@ -3053,15 +3065,15 @@ App.Data.HeroSlaves.D = [ height: 190, nationality: "Slovak", race: "white", - override_H_Color: 1, - override_Brow_H_Color: 1, - override_Arm_H_Color: 1, - override_Pubic_H_Color: 1, + overrideHColor: 1, + overrideBrowHColor: 1, + overrideArmHColor: 1, + overridePubicHColor: 1, origHColor: "white with red stripes", eyebrowHColor: "white", pubicHColor: "white", underArmHColor: "white", - override_Skin: 1, + overrideSkin: 1, origSkin: "sun tanned", hLength: 100, hStyle: "braided", @@ -3160,6 +3172,7 @@ App.Data.HeroSlaves.D = [ pubicHColor: "blonde", origSkin: "pale", hLength: 40, + // @ts-expect-error custom hair style hStyle: "fashionable for a Free Cities 3rd Grade Teacher, up in a tight bun", pubicHStyle: "bushy", waist: -55, @@ -3213,10 +3226,10 @@ App.Data.HeroSlaves.D = [ height: 190, nationality: "Central African", race: "black", - override_H_Color: 1, - override_Brow_H_Color: 1, - override_Arm_H_Color: 1, - override_Pubic_H_Color: 1, + overrideHColor: 1, + overrideBrowHColor: 1, + overrideArmHColor: 1, + overridePubicHColor: 1, eye: {origColor: "green"}, origHColor: "golden blonde with copper streaks", eyebrowHColor: "blonde", @@ -3224,6 +3237,7 @@ App.Data.HeroSlaves.D = [ underArmHColor: "blonde", origSkin: "brown", hLength: 35, + // @ts-expect-error custom hair style hStyle: "shoulder-length, plaited in cornrow braids; a single thin braid adorned with several colorful feathers and fearsome fang of unknown origin is hanging aside $his left eye", pubicHStyle: "in a strip", waist: -55, @@ -3271,10 +3285,11 @@ App.Data.HeroSlaves.D = [ race: "white", eye: {origColor: "green"}, origHColor: "red", - override_H_Color: 1, + overrideHColor: 1, hColor: "deep red", origSkin: "fair", hLength: 10, + // @ts-expect-error custom hair style hStyle: "pleasantly frames $his face", waist: -55, boobs: 900, @@ -3340,6 +3355,7 @@ App.Data.HeroSlaves.D = [ pubicHColor: "blonde", origSkin: "pale", hLength: 60, + // @ts-expect-error custom hair style hStyle: "tied back into two braids", boobs: 800, butt: 2.5, @@ -3385,16 +3401,17 @@ App.Data.HeroSlaves.D = [ devotion: 90, height: 155, race: "white", - override_H_Color: 1, - override_Brow_H_Color: 1, - override_Arm_H_Color: 1, - override_Pubic_H_Color: 1, + overrideHColor: 1, + overrideBrowHColor: 1, + overrideArmHColor: 1, + overridePubicHColor: 1, origHColor: "black with deep red highlights", eyebrowHColor: "red", pubicHColor: "red", underArmHColor: "red", origSkin: "pale", hLength: 60, + // @ts-expect-error custom hair style hStyle: "disheveled", waist: -55, boobs: 500, @@ -3480,6 +3497,7 @@ App.Data.HeroSlaves.D = [ race: "asian", origSkin: "dark", hLength: 10, + // @ts-expect-error custom hair style hStyle: "held back by a white bandana", boobs: 600, butt: 4, @@ -3672,6 +3690,7 @@ App.Data.HeroSlaves.D = [ race: "asian", origHColor: "black", hLength: 60, + // @ts-expect-error custom hair style hStyle: "tied into a neat ponytail", boobs: 300, butt: 1, @@ -3715,6 +3734,7 @@ App.Data.HeroSlaves.D = [ pubicHColor: "black", origSkin: "pale", hLength: 60, + // @ts-expect-error custom hair style hStyle: "tied into Chinese buns.", pubicHStyle: "in a strip", boobs: 755, @@ -3761,6 +3781,7 @@ App.Data.HeroSlaves.D = [ nationality: "Ugandan", race: "black", hLength: 150, + // @ts-expect-error custom hair style hStyle: "bushy", pubicHStyle: "bushy", waist: -55, @@ -3822,9 +3843,10 @@ App.Data.HeroSlaves.D = [ eye: {origColor: "blue"}, origHColor: "blonde", pubicHColor: "blonde", - override_Skin: 1, + overrideSkin: 1, origSkin: "sun tanned", hLength: 20, + // @ts-expect-error custom hair style hStyle: "braided into pigtails", pubicHStyle: "bushy", waist: -55, @@ -3861,7 +3883,7 @@ App.Data.HeroSlaves.D = [ eye: {origColor: "blue"}, origHColor: "red", pubicHColor: "red", - override_Skin: 1, + overrideSkin: 1, origSkin: "sun tanned", hLength: 140, hStyle: "neat", @@ -4080,7 +4102,7 @@ App.Data.HeroSlaves.Dextreme = [ weight: 20, height: 152, race: "white", - override_H_Color: 1, + overrideHColor: 1, pubicHColor: "purple", origSkin: "pale", eye: {origColor: "blue"}, @@ -4114,9 +4136,9 @@ App.Data.HeroSlaves.Dextreme = [ devotion: -75, weight: 20, race: "white", - override_Brow_H_Color: 1, - override_Arm_H_Color: 1, - override_Pubic_H_Color: 1, + overrideBrowHColor: 1, + overrideArmHColor: 1, + overridePubicHColor: 1, eyebrowHColor: "blonde", pubicHColor: "blonde", underArmHColor: "blonde", @@ -4197,7 +4219,7 @@ App.Data.HeroSlaves.Dextreme = [ devotion: 100, weight: 40, origRace: "white", - override_Race: 1, + overrideRace: 1, race: "latina", eye: {origColor: "blue"}, origHColor: "red", @@ -4276,7 +4298,7 @@ App.Data.HeroSlaves.Dextreme = [ height: 155, nationality: "Mexican", race: "latina", - override_H_Color: 1, + overrideHColor: 1, origHColor: "raven black with red highlights", origSkin: "brown", hLength: 10, @@ -4379,6 +4401,7 @@ App.Data.HeroSlaves.Dextreme = [ pubicHColor: "brown", origSkin: "white", hLength: 60, + // @ts-expect-error custom hair style hStyle: "disheveled", boobs: 400, butt: 2, @@ -4487,7 +4510,7 @@ App.Data.HeroSlaves.Dextreme = [ eye: {origColor: "blue"}, origHColor: "blonde", pubicHColor: "blonde", - override_Skin: 1, + overrideSkin: 1, origSkin: "spray tanned", hLength: 60, hStyle: "neat", diff --git a/src/npc/databases/ddSlavesDatabase.js b/src/npc/databases/ddSlavesDatabase.js index 0fd5f109db2..0f872729511 100644 --- a/src/npc/databases/ddSlavesDatabase.js +++ b/src/npc/databases/ddSlavesDatabase.js @@ -1,4 +1,3 @@ -/* eslint-disable camelcase */ /** * @type {FC.SlaveTemplate[]} @@ -190,7 +189,7 @@ App.Data.HeroSlaves.DD = [ race: "white", origHColor: "blonde", pubicHColor: "blonde", - override_Skin: 1, + overrideSkin: 1, origSkin: "spray tanned", hLength: 10, boobs: 1000, @@ -665,6 +664,7 @@ App.Data.HeroSlaves.DD = [ pubicHColor: "blonde", origSkin: "white", hLength: 15, + // @ts-expect-error custom hair style hStyle: "in a boyish cut", boobs: 300, butt: 1, @@ -702,6 +702,7 @@ App.Data.HeroSlaves.DD = [ pubicHColor: "white", origSkin: "extremely pale", hLength: 15, + // @ts-expect-error custom hair style hStyle: "in a boyish cut", waist: -55, boobs: 100, @@ -820,12 +821,13 @@ App.Data.HeroSlaves.DD = [ devotion: 31, nationality: "Chinese", race: "asian", - override_H_Color: 1, + overrideHColor: 1, origHColor: "black", hColor: "dark brown with bleached highlights", - override_Skin: 1, + overrideSkin: 1, origSkin: "spray tanned", hLength: 60, + // @ts-expect-error custom hair style hStyle: "in a braided ponytail", waist: -55, boobs: 200, @@ -868,9 +870,10 @@ App.Data.HeroSlaves.DD = [ eye: {origColor: "black"}, origHColor: "sparkling and shiny golden red", pubicHColor: "blonde", - override_Skin: 1, + overrideSkin: 1, origSkin: "sun tanned", hLength: 60, + // @ts-expect-error custom hair style hStyle: "in thick, heavy braids", waist: -100, boobs: 9200, @@ -995,12 +998,12 @@ App.Data.HeroSlaves.DD = [ height: 155, heightImplant: -1, race: "middle eastern", - override_Eye_Color: 1, + overrideEyeColor: 1, eye: {origColor: "blue"}, - override_H_Color: 1, - override_Brow_H_Color: 1, - override_Arm_H_Color: 1, - override_Pubic_H_Color: 1, + overrideHColor: 1, + overrideBrowHColor: 1, + overrideArmHColor: 1, + overridePubicHColor: 1, origHColor: "peachy fading into a red ombre at the bottom", eyebrowHColor: "red", pubicHColor: "red", @@ -1052,13 +1055,14 @@ App.Data.HeroSlaves.DD = [ devotion: 5, height: 155, race: "middle eastern", - override_H_Color: 1, - override_Eye_Color: 1, + overrideHColor: 1, + overrideEyeColor: 1, eye: {origColor: "blue"}, origHColor: "white", pubicHColor: "white", origSkin: "dark", hLength: 60, + // @ts-expect-error custom hair style hStyle: "tied in a bun using a pearl chain", heels: 1, boobs: 200, @@ -1101,12 +1105,13 @@ App.Data.HeroSlaves.DD = [ height: 155, nationality: "Korean", race: "asian", - override_H_Color: 1, + overrideHColor: 1, origHColor: "black", hColor: "onyx black and rainbow-streaked", - override_Skin: 1, + overrideSkin: 1, origSkin: "sun tanned", hLength: 60, + // @ts-expect-error custom hair style hStyle: "styled in high chignon resembling a traditional Japanese geisha's Shimada hairstyle, with plenty of decorated hairpins", waist: -55, boobs: 6000, @@ -1169,6 +1174,7 @@ App.Data.HeroSlaves.DD = [ pubicHColor: "black", origSkin: "fair", hLength: 50, + // @ts-expect-error custom hair style hStyle: "styled up in schoolgirl pigtails with bangs", boobs: 700, natural: {boobs: 400}, @@ -1211,11 +1217,12 @@ App.Data.HeroSlaves.DD = [ race: "white", nationality: "Norwegian", eye: {origColor: "blue"}, - override_H_Color: 1, + overrideHColor: 1, origHColor: "black", hColor: "onyx black", origSkin: "pale", hLength: 110, + // @ts-expect-error custom hair style hStyle: "neat with Nordic braids throughout", waist: -55, boobs: 800, @@ -1401,7 +1408,7 @@ App.Data.HeroSlaves.DD = [ eye: {origColor: "blue"}, origHColor: "blonde", pubicHColor: "blonde", - override_Skin: 1, + overrideSkin: 1, origSkin: "spray tanned", hLength: 90, hStyle: "neat", @@ -1479,6 +1486,7 @@ App.Data.HeroSlaves.DDextreme = [ pubicHColor: "black", origSkin: "pale", hLength: 30, + // @ts-expect-error custom hair style hStyle: "curly", boobs: 1000, natural: {boobs: 800}, @@ -1567,6 +1575,7 @@ App.Data.HeroSlaves.DDextreme = [ pubicHColor: "blonde", origSkin: "pale", hLength: 10, + // @ts-expect-error custom hair style hStyle: "beautifully framing $his face", waist: -55, boobs: 500, @@ -1607,7 +1616,7 @@ App.Data.HeroSlaves.DDextreme = [ eye: {origColor: "blue"}, origHColor: "black", pubicHColor: "black", - override_Skin: 1, + overrideSkin: 1, origSkin: "spray tanned", hLength: 0, prostate: 1, @@ -1709,7 +1718,7 @@ App.Data.HeroSlaves.DDextreme = [ eye: {origColor: "blue"}, origHColor: "black", pubicHColor: "black", - override_Skin: 1, + overrideSkin: 1, origSkin: "spray tanned", hLength: 10, hStyle: "neat", diff --git a/src/npc/databases/dfSlavesDatabase.js b/src/npc/databases/dfSlavesDatabase.js index cd0fcb1aa03..f63be3d536e 100644 --- a/src/npc/databases/dfSlavesDatabase.js +++ b/src/npc/databases/dfSlavesDatabase.js @@ -1,4 +1,3 @@ -/* eslint-disable camelcase */ /** * @type {FC.SlaveTemplate[]} @@ -54,7 +53,7 @@ App.Data.HeroSlaves.DF = [ eye: {origColor: "dark brown"}, origHColor: "blonde", pubicHColor: "blonde", - override_Skin: 1, + overrideSkin: 1, origSkin: "sun tanned", hStyle: "neat", hLength: 60, @@ -99,7 +98,7 @@ App.Data.HeroSlaves.DF = [ eye: {origColor: "blue"}, origHColor: "red", pubicHColor: "red", - override_Skin: 1, + overrideSkin: 1, origSkin: "sun tanned", hLength: 10, hStyle: "neat", @@ -144,9 +143,10 @@ App.Data.HeroSlaves.DF = [ eye: {origColor: "light green"}, origHColor: "dark blonde", pubicHColor: "dark blonde", - override_Skin: 1, + overrideSkin: 1, origSkin: "sun tanned", hLength: 60, + // @ts-expect-error custom hair style hStyle: "in curly pigtails", pubicHStyle: "waxed", boobs: 650, @@ -351,6 +351,7 @@ App.Data.HeroSlaves.DFextreme = [ origHColor: "brown", origSkin: "pale", hLength: 10, + // @ts-expect-error custom hair style hStyle: "wavy", pubicHStyle: "waxed", boobs: 400, diff --git a/src/npc/generate/generateMarketSlave.js b/src/npc/generate/generateMarketSlave.js index 23268f56645..9814d515b3a 100644 --- a/src/npc/generate/generateMarketSlave.js +++ b/src/npc/generate/generateMarketSlave.js @@ -1,4 +1,3 @@ -/* eslint-disable camelcase */ // cSpell:ignore WCPU /** @@ -19,7 +18,7 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1 SGProp.maxAge = 19; } else if (V.corp.SpecAge === 3) { r += `Newly enslaved MILFs are strongly favored for training. `; - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { SGProp.minAge = 24; SGProp.maxAge = V.retirementAge - 1; } else { @@ -1741,9 +1740,9 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1 slave.eyebrowHColor = "blonde"; slave.race = "white"; slave.skin = "sun tanned"; - slave.override_H_Color = 1; - slave.override_Race = 1; - slave.override_Skin = 1; + slave.overrideHColor = 1; + slave.overrideRace = 1; + slave.overrideSkin = 1; slave.custom.tattoo = "$He has the coat of arms of St. Claver Preparatory tattooed on $his left cheek."; break; } @@ -2376,7 +2375,7 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1 break; } case "gangs and smugglers": { - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { SGProp.minAge = 6; SGProp.maxAge = 18; SGProp.ageOverridesPedoMode = 1; @@ -2628,7 +2627,7 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1 break; } case "military prison": { - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { SGProp.minAge = 12; SGProp.maxAge = 18; SGProp.ageOverridesPedoMode = 1; @@ -2820,7 +2819,7 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1 break; } case "white collar": { - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { SGProp.minAge = 16; SGProp.maxAge = 45; SGProp.ageOverridesPedoMode = 1; @@ -2957,7 +2956,7 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1 break; } case "low tier criminals": { - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { SGProp.minAge = 6; SGProp.maxAge = 18; SGProp.ageOverridesPedoMode = 1; diff --git a/src/npc/generate/generateNewSlaveJS.js b/src/npc/generate/generateNewSlaveJS.js index 6c850282881..eee266325b3 100644 --- a/src/npc/generate/generateNewSlaveJS.js +++ b/src/npc/generate/generateNewSlaveJS.js @@ -35,7 +35,6 @@ globalThis.GenerateNewSlavePram = function() { this.disableDisability = 0; }; -/* eslint-disable camelcase */ globalThis.GenerateNewSlave = (function() { "use strict"; @@ -1125,7 +1124,7 @@ globalThis.GenerateNewSlave = (function() { } if (slave.origHColor === "blonde" && Math.random() > 0.85) { slave.eyebrowHColor = jsEither(["black", "brown", "brown", "brown", "brown"]); - slave.override_Brow_H_Color = 1; + slave.overrideBrowHColor = 1; } else { slave.eyebrowHColor = slave.origHColor; } @@ -1144,7 +1143,7 @@ globalThis.GenerateNewSlave = (function() { } if (slave.origHColor === "blonde" && Math.random() > 0.85) { slave.eyebrowHColor = jsEither(["black", "brown", "brown", "brown", "brown"]); - slave.override_Brow_H_Color = 1; + slave.overrideBrowHColor = 1; } else { slave.eyebrowHColor = slave.origHColor; } @@ -1387,15 +1386,15 @@ globalThis.GenerateNewSlave = (function() { function generateAge() { if (x.maxAge > 998) { - x.maxAge = (V.pedo_mode === 1) ? 18 : 42; - } else if (V.pedo_mode === 1 && x.ageOverridesPedoMode === 0 && x.maxAge > 18) { + x.maxAge = (V.pedoMode === 1) ? 18 : 42; + } else if (V.pedoMode === 1 && x.ageOverridesPedoMode === 0 && x.maxAge > 18) { x.maxAge = 18; } x.maxAge = Math.min(V.retirementAge - 1, x.maxAge); x.minAge = Math.min(V.retirementAge - 1, x.minAge); if (x.minAge < V.minimumSlaveAge) { x.minAge = V.minimumSlaveAge; - } else if (V.pedo_mode === 1 && x.ageOverridesPedoMode === 0) { + } else if (V.pedoMode === 1 && x.ageOverridesPedoMode === 0) { x.minAge = V.minimumSlaveAge; } if (x.maxAge >= 30 && FutureSocieties.isActive('FSMaturityPreferentialist') && x.mature === 1) { @@ -1876,13 +1875,13 @@ globalThis.generateSalonModifications = function(slave) { if (jsRandom(1, 10) === 1 || (["black", "brown", "chestnut", "chocolate brown", "dark brown", "jet black"].includes(slave.hColor) && jsRandom(1, 10) !== 1)) { slave.eyebrowHColor = slave.hColor; } - slave.override_H_Color = 1; + slave.overrideHColor = 1; } else if ((jsRandom(1, 100) === 1) || ((jsRandom(1, 20) === 1) && ["a barber", "a barista", "a bimbo", "a blogger", "a camgirl", "a camwhore", "a cheerleader", "a child actress", "a clown", "a club recruiter", "a cocktail waitress", "a comedian", "a cosmetologist", "a dominatrix", "a gang member", "a house DJ", "a juvenile delinquent", "a magician's assistant", "a medium", "a mime", "a musician", "a party girl", "a poet", "a political activist", "a porn star", "a radio show host", "a stage magician", "a street performer", "a stripper", "a student", "a video game streamer", "an actress", "an artist", "an aspiring pop star", "an idol"].includes(slave.career))) { slave.hColor = jsEither(["blazing red", "blue-violet", "blue", "burgundy", "dark blue", "deep red", "green-yellow", "green", "grey", "ivory", "neon blue", "neon green", "neon pink", "pink", "platinum blonde", "platinum blonde", "purple", "red", "sea green", "silver"]); if (jsRandom(1, 3) === 1) { slave.eyebrowHColor = slave.hColor; } - slave.override_H_Color = 1; + slave.overrideHColor = 1; } if (jsRandom(1, 6) === 1) { slave.pubicHColor = slave.hColor; @@ -1916,20 +1915,20 @@ globalThis.generateSalonModifications = function(slave) { if ((jsRandom(1, 40) === 1) || (["a bimbo", "an exotic dancer", "a trophy wife", "a party girl"].includes(slave.career) && (jsRandom(1, 10) === 1))) { slave.skin = "spray tanned"; } else if (skinToneLevel(slave.origSkin) > 3) { - let tan_chance = jsRandom(1, 50); + let tanChance = jsRandom(1, 50); if (["Swedish"].includes(slave.nationality) || ["southern european", "latina", "indo-aryan", "middle eastern", "semitic"].includes(slave.race)) { - tan_chance += 5; + tanChance += 5; } /* certain jobs being more likely to expose you to harmful solar radiation*/ if (["a beggar", "a bimbo", "a construction worker", "a courier", "a delivery woman", "a farm laborer", "a farmer's daughter", "a farmer", "a farmhand", "a gardener", "a lifeguard", "a personal trainer", "a rancher", "a shepherd", "a street performer", "a street vendor", "a student athlete", "a tour guide", "a trophy wife", "an athlete", "an exotic dancer", "homeless"].includes(slave.career)) { - tan_chance += 10; + tanChance += 10; } /* certain areas expose people to more harmful solar radiation*/ if (["Africa", "Australia", "South America", "the Middle East"].includes(V.continent)) { - tan_chance += 5; + tanChance += 5; } - tan_chance += (skinToneLevel(slave.origSkin) - 8); - if (tan_chance >= 45) { + tanChance += (skinToneLevel(slave.origSkin) - 8); + if (tanChance >= 45) { slave.skin = "sun tanned"; } } diff --git a/src/npc/generate/generateRelatedSlave.js b/src/npc/generate/generateRelatedSlave.js index e725971a589..f76a0e1fbd4 100644 --- a/src/npc/generate/generateRelatedSlave.js +++ b/src/npc/generate/generateRelatedSlave.js @@ -179,7 +179,7 @@ globalThis.generateRelatedSlave = (function() { const parentAge = slave.actualAge; let maxAge = Math.min(22, Math.max(V.minimumSlaveAge, parentAge - 11)); let minAge = Math.min(Math.max(8, V.minimumSlaveAge), maxAge); - if (V.pedo_mode === 1) { + if (V.pedoMode === 1) { minAge = V.minimumSlaveAge; } slave.actualAge = random(minAge, maxAge); diff --git a/src/npc/generate/heroCreator.js b/src/npc/generate/heroCreator.js index a321ac4f512..70fd96af73c 100644 --- a/src/npc/generate/heroCreator.js +++ b/src/npc/generate/heroCreator.js @@ -106,25 +106,25 @@ App.Utils.getHeroSlave = function(heroSlave) { if (!heroSlave.underArmHColor) { newSlave.underArmHColor = newSlave.hColor; } - if (newSlave.override_Race !== 1) { + if (newSlave.overrideRace !== 1) { newSlave.origRace = newSlave.race; } - if (newSlave.override_Eye_Color !== 1) { + if (newSlave.overrideEyeColor !== 1) { resetEyeColor(newSlave, "both"); } - if (newSlave.override_H_Color !== 1) { + if (newSlave.overrideHColor !== 1) { newSlave.hColor = getGeneticHairColor(newSlave); } - if (newSlave.override_Arm_H_Color !== 1) { + if (newSlave.overrideArmHColor !== 1) { newSlave.underArmHColor = getGeneticHairColor(newSlave); } - if (newSlave.override_Pubic_H_Color !== 1) { + if (newSlave.overridePubicHColor !== 1) { newSlave.pubicHColor = getGeneticHairColor(newSlave); } - if (newSlave.override_Brow_H_Color !== 1) { + if (newSlave.overrideBrowHColor !== 1) { newSlave.eyebrowHColor = getGeneticHairColor(newSlave); } - if (newSlave.override_Skin !== 1) { + if (newSlave.overrideSkin !== 1) { newSlave.skin = getGeneticSkinColor(newSlave); } if (!heroSlave.natural?.height) { diff --git a/src/npc/generate/newSlaveIntro.js b/src/npc/generate/newSlaveIntro.js index 688644b4086..0f33ff5574c 100644 --- a/src/npc/generate/newSlaveIntro.js +++ b/src/npc/generate/newSlaveIntro.js @@ -237,7 +237,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = } if (V.seeRace === 1) { - if (slave.override_Race !== 1) { + if (slave.overrideRace !== 1) { slave.origRace = slave.race; } if (slave.race !== slave.origRace) { diff --git a/src/npc/startingGirls/startingGirls.js b/src/npc/startingGirls/startingGirls.js index 51f8f540ae0..2b8782e1128 100644 --- a/src/npc/startingGirls/startingGirls.js +++ b/src/npc/startingGirls/startingGirls.js @@ -2196,10 +2196,10 @@ App.StartingGirls.finalize = function(slave) { V.PC.counter.slavesKnockedUp++; } // Make newSlave keep certain changes - slave.override_H_Color = 1; - slave.override_Arm_H_Color = 1; - slave.override_Brow_H_Color = 1; - slave.override_Skin = 1; + slave.overrideHColor = 1; + slave.overrideArmHColor = 1; + slave.overrideBrowHColor = 1; + slave.overrideSkin = 1; newSlave(clone(slave)); }; diff --git a/src/npc/startingGirls/startingGirlsPassage.js b/src/npc/startingGirls/startingGirlsPassage.js index f8c1c56a290..51e3a1bc58c 100644 --- a/src/npc/startingGirls/startingGirlsPassage.js +++ b/src/npc/startingGirls/startingGirlsPassage.js @@ -111,7 +111,7 @@ App.StartingGirls.passage = function() { V.activeSlave = App.StartingGirls.generate({nationality: "American", race: "white"}); V.activeSlave.eye.origColor = "blue"; V.activeSlave.skin = "sun tanned"; - V.activeSlave.override_Skin = 1; + V.activeSlave.overrideSkin = 1; V.activeSlave.origHColor = "blonde"; V.activeSlave.markings = "none"; V.activeSlave.face = 55; diff --git a/src/npc/surgery/surgery.js b/src/npc/surgery/surgery.js index db69f86e3ff..47d5b855a19 100644 --- a/src/npc/surgery/surgery.js +++ b/src/npc/surgery/surgery.js @@ -182,7 +182,7 @@ App.Medicine.Surgery.sizingProcedures = function() { * @template {FC.SizingImplantTarget} T * @param {FC.SizingImplantTarget} bodyPart * @param {App.Entity.SlaveState} slave - * @param {FC.Medicine.Surgery.SizingOptions<T>} [options] + * @param {FC.Medicine.Surgery.SizingOptions<any>} [options] * @returns {App.Medicine.Surgery.Procedure[]} */ function bodyPart(bodyPart, slave, options) { diff --git a/src/player/js/PlayerState.js b/src/player/js/PlayerState.js index f5dbdd5bb28..1f61ed0a914 100644 --- a/src/player/js/PlayerState.js +++ b/src/player/js/PlayerState.js @@ -2076,7 +2076,6 @@ App.Entity.PlayerState = class PlayerState { }; /** flavor of their milk*/ this.milkFlavor = "none"; - /* eslint-disable camelcase*/ this.NCSyouthening = 0; /** erratic weight gain * diff --git a/src/player/js/enslavePlayer.js b/src/player/js/enslavePlayer.js index 19ab61ab9ea..fa5e9358080 100644 --- a/src/player/js/enslavePlayer.js +++ b/src/player/js/enslavePlayer.js @@ -92,13 +92,13 @@ globalThis.convertPlayerToSlave = function(player, badEnd = "boring") { slave.onDiet = 0; slave.haircuts = 0; slave.newGamePlus = 0; - slave.override_Race = 0; - slave.override_Skin = 0; - slave.override_Eye_Color = 0; - slave.override_H_Color = 0; - slave.override_Pubic_H_Color = 0; - slave.override_Arm_H_Color = 0; - slave.override_Brow_H_Color = 0; + slave.overrideRace = 0; + slave.overrideSkin = 0; + slave.overrideEyeColor = 0; + slave.overrideHColor = 0; + slave.overridePubicHColor = 0; + slave.overrideArmHColor = 0; + slave.overrideBrowHColor = 0; /* eslint-enable */ slave.slaveCost = 0; diff --git a/src/pregmod/FCTV/FCTVshows.js b/src/pregmod/FCTV/FCTVshows.js index f043e3e18e7..48a3afa24a2 100644 --- a/src/pregmod/FCTV/FCTVshows.js +++ b/src/pregmod/FCTV/FCTVshows.js @@ -1028,13 +1028,13 @@ App.Data.FCTV.channels = new Map([ r.push(`Millie continues. "We've covered all this, but you're probably dying to know: 'what comes after?'"</p>`); r.push(`<p>Millie walks once more, moving away from the moaning slaves until a beautiful slave nursing two babies and an odd looking machine come into view. "If you live somewhere that supports it, you could always sell the litter... you won't make much though. All the care that went into creating a high-quality litter will likely be wasted. Of course, you could always keep the litter; let the slaves raise 'em until they're old enough to be trained." Millie rubs the thin hair of one of the suckling infants. "That's the traditional way. There's good money in it if you're successful, but it's a sizable investment of time and money to get to the first sale. If you've kept up the breeding and have room, you'll finally be able to sell a new batch of slaves each year, and of course keep some for breeding." Millie gives the slave's hip and ass a quick caress. "This one here's a second generation breeding slut; she's already given me several healthy litters."</p>`); r.push(`<p>Millie faces the camera. "But what if you want to do some serious breeding? Maybe you want a litter that'll grow to have gigantic natural tits with rich milk that just pours out of the nipple, or maybe you want a litter with hips so wide that they can fit a head between their legs without opening them? The trouble is time..." Millie looks sad for a moment. "Slaves take too long to reach maturity; even if you start breeding 'em young, how many decades will it be before you reach that perfect third or fourth generation?" She walks over to the machine and pats it lovingly. "Thanks to this beauty of modern science, we can accelerate the growth of your most promising calf. Instead of waiting`); - if (V.pedo_mode === 0) { + if (V.pedoMode === 0) { r.push(`18 years`); } else { r.push(`${V.minimumSlaveAge} years`); } r.push(`to breed 'em, you can have them ready to go in`); - if (V.pedo_mode === 0) { + if (V.pedoMode === 0) { r.push(`only 3.`); } else { r.push(`as little as a year.`); diff --git a/src/pregmod/blackMarket.js b/src/pregmod/blackMarket.js index af9f2b49aa1..5c04e20c8ee 100644 --- a/src/pregmod/blackMarket.js +++ b/src/pregmod/blackMarket.js @@ -79,7 +79,7 @@ App.UI.blackMarket = function() { } }; */ - r.push(options.render()) + r.push(options.render()); App.Events.addParagraph(node, r); r = []; @@ -386,7 +386,7 @@ App.UI.blackMarket = function() { } else { if (V.arcologies[0].childhoodFertilityInducedNCSResearch === 0) { const match = (V.arcologies[0].FSYouthPreferentialist > 0) ? "Knowing your arcology, I think you could be happy with the results!" : "I'm not sure this is a good match for your arcology's current society at this moment, but I'm sure you could have fun with it."; - if (V.pedo_mode) { + if (V.pedoMode) { r.push( `"If you like sexy little toy dolls, I mean biological`, App.UI.DOM.makeElement("span", "lolis", ["coral", "bold"]), -- GitLab