diff --git a/src/personalAssistant/assistantData.js b/js/003-data/assistantData.js similarity index 98% rename from src/personalAssistant/assistantData.js rename to js/003-data/assistantData.js index a2879afa6d0ad09b80b327ec01266c479a78d469..b96e390ab40924446e27d95850c5310fa72f89b4 100644 --- a/src/personalAssistant/assistantData.js +++ b/js/003-data/assistantData.js @@ -36,6 +36,9 @@ App.Data.Assistant.appearanceForFS = new Map([ ["FSStatuesqueGlorification", ["amazon", "goddess", "incubus", "succubus", "witch"]] ]); +/** + * @type {Map<string, {readonly requirements: boolean}>} + */ App.Data.Assistant.appearances = new Map([ ["normal", {get requirements() { return true; }}], ["monstergirl", {get requirements() { return (V.seeDicks > 0); }}], @@ -61,7 +64,7 @@ App.Data.Assistant.appearances = new Map([ // Extra 2 ["angel", {get requirements() { return (V.assistant.Extra2 === 1); }}], ["cherub", {get requirements() { return (V.assistant.Extra2 === 1); }}], - ["incubus", {get requirements() { return (V.assistant.Extra2 === 1 && V.seeDicks); }}], + ["incubus", {get requirements() { return (V.assistant.Extra2 === 1 && V.seeDicks > 0); }}], ["succubus", {get requirements() { return (V.assistant.Extra2 === 1); }}], ["imp", {get requirements() { return (V.assistant.Extra2 === 1); }}], ["witch", {get requirements() { return (V.assistant.Extra2 === 1); }}], diff --git a/src/player/js/PlayerState.js b/src/player/js/PlayerState.js index 19771fff92a825753109e9dad2715b193360cb49..748396367055ba0f1913f60a68746dcff02ebe1d 100644 --- a/src/player/js/PlayerState.js +++ b/src/player/js/PlayerState.js @@ -234,7 +234,7 @@ App.Entity.PlayerPornPerformanceState = class { /** what aspect of you is being focused on for porn */ this.focus = "none"; /** your fame in each porn genre */ - this.fame = { }; + this.fame = {}; for (const genre of App.Porn.getAllGenres()) { this.fame[genre.fameVar] = 0; } @@ -341,7 +341,7 @@ App.Entity.PlayerState = class PlayerState { /** How old your ovaries are. (used to trick menopause) */ this.ovaryAge = 35; /** has had facial surgery to reduce age. 0: no, 1: yes - * @type {FC.Bool} */ + * @type {FC.Bool} */ this.ageImplant = 0; /** compatibility **/ this.devotion = 0; @@ -548,7 +548,7 @@ App.Entity.PlayerState = class PlayerState { */ this.waist = 0; /** series of rings up the back that can be tied together. 0: no, 1: yes - * @type {FC.Bool} */ + * @type {FC.Bool} */ this.corsetPiercing = 0; /** * What level of prosthetic interface you have installed @@ -797,8 +797,8 @@ App.Entity.PlayerState = class PlayerState { * * "fillable" * * "advanced fillable" * * "hyper fillable" - * @type {FC.SizingImplantType} - */ + * @type {FC.SizingImplantType} + */ this.buttImplantType = "none"; /** * butt tattoo diff --git a/src/pregmod/FCTV/FCTV.js b/src/pregmod/FCTV/FCTV.js index b9c32baea5bedba6e475fdb91400275c9f2bade7..82952a6bfacd659f5f2d2f1b086ae93218dc0564 100644 --- a/src/pregmod/FCTV/FCTV.js +++ b/src/pregmod/FCTV/FCTV.js @@ -59,6 +59,7 @@ globalThis.FCTV = (function() { } return false; } + /** * Applies some universal changes to FCTV slaves * @param {App.Entity.SlaveState} slave @@ -247,7 +248,7 @@ globalThis.FctvDisplay = function({usedRemote = 0, seeAll = 0, selectedChannel = if (!usedRemote) { const channels = FCTV.channels(); channels.push(3); // Double chance for slave sale. Replaces old channel 4. - for (let i = 0; ; i++){ + for (let i = 0; ; i++) { // Roll for a channel const channel = _.sample(channels); // See if we can show it @@ -289,7 +290,8 @@ globalThis.FctvDisplay = function({usedRemote = 0, seeAll = 0, selectedChannel = } if (i === 11) { if (V.purchasedSagBGone && V.FCTV.channel[num(i, true)] > 2) { - x.canSelect = -1; x.text = `Product purchase detected, skipping commercials`; + x.canSelect = -1; + x.text = `Product purchase detected, skipping commercials`; } } return x; @@ -388,7 +390,7 @@ globalThis.FctvDisplay = function({usedRemote = 0, seeAll = 0, selectedChannel = const watchedEntireSeason = Math.trunc(viewedCount / availableEp); // we went through 3 times fully epToShow = viewedCount - (watchedEntireSeason * availableEp); // 10 - 3 seasons (9) is 1. So our last episode was the first, 0 in the array. And 1 is the next ep! } else { // We have seen all the episodes, return a random one - epToShow = jsRandom(0, availableEp-1); + epToShow = jsRandom(0, availableEp - 1); } if (epToShow === -1) { return epToShow; @@ -402,7 +404,7 @@ globalThis.FctvDisplay = function({usedRemote = 0, seeAll = 0, selectedChannel = * @param {FctvTags} tags * @returns {Object} x */ - function checkTags(tags){ + function checkTags(tags) { let x = { canSelect: 1, }; @@ -411,32 +413,38 @@ globalThis.FctvDisplay = function({usedRemote = 0, seeAll = 0, selectedChannel = switch (tag) { case "hyperPreg": if (!V.seeHyperPreg) { - x.canSelect = -1; x.text = `Too much happiness detected`; + x.canSelect = -1; + x.text = `Too much happiness detected`; } break; case "preg": if (!V.seePreg) { - x.canSelect = -1; x.text = `Too much baking detected`; + x.canSelect = -1; + x.text = `Too much baking detected`; } break; case "extreme": if (!V.seeExtreme) { - x.canSelect = -1; x.text = `Too much hugging detected`; + x.canSelect = -1; + x.text = `Too much hugging detected`; } break; case "dicks": if (!V.seeDicks && !V.makeDicks) { - x.canSelect = -1; x.text = `Too many hot dogs detected`; + x.canSelect = -1; + x.text = `Too many hot dogs detected`; } break; case "incest": if (!V.seeIncest && tag === "incest") { - x.canSelect = -1; x.text = `Too much familiarity detected`; + x.canSelect = -1; + x.text = `Too much familiarity detected`; } break; case "loli": if (V.minimumSlaveAge > 13 && tag === "loli") { - x.canSelect = -1; x.text = `Actor not vintage enough`; + x.canSelect = -1; + x.text = `Actor not vintage enough`; } break; default: diff --git a/src/pregmod/eliteBreedingExam.js b/src/pregmod/eliteBreedingExam.js index a6e4b61884c48b68274483369b023b9bf336cf3e..c5c2a3afa28cbc58ec241e1336e7fad06e41d6aa 100644 --- a/src/pregmod/eliteBreedingExam.js +++ b/src/pregmod/eliteBreedingExam.js @@ -234,7 +234,8 @@ globalThis.eliteBreedingExam = function(slave = null) { } else { r.push(`The aforementioned slave has been deemed <span class="green">worthy</span> of being used for breeding and has been marked as such. Please note the increased restrictions on breeding slaves.`); r.push(`They are not permitted for public use or anything that may harm their growing child. The child within them is considered a member of the Elite class and as such, any harm that comes to them will result in severe penalties to the breeder's owner. Development of the child will be closely monitored; should the fetus be identified as not of the owner's blood (or any other member of the Elite class), said owner shall face severe fines.`); - slave.breedingMark = 1; slave.pregControl = "none"; + slave.breedingMark = 1; + slave.pregControl = "none"; removeJob(slave, slave.assignment); } cashX(-cost, "capEx");