diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js index dda5938b36cf8047b4c079e74f73472542576a79..f0d6cbadd60cca790f662475f2445c2297afa373 100644 --- a/src/js/DefaultRules.js +++ b/src/js/DefaultRules.js @@ -34,7 +34,7 @@ globalThis.DefaultRules = (function() { r = ""; ({he, him, his} = pronouns = getPronouns(slave)); const slaveReadOnly = createReadonlyProxy(slave); - const {rule, ruleIds} = runWithReadonlyProxy(()=>ProcessSlaveRules(slaveReadOnly)); + const {rule, ruleIds} = runWithReadonlyProxy(() => ProcessSlaveRules(slaveReadOnly)); slave.currentRules = ruleIds; if (ruleIds.length === 0) { return r; } // no rules apply @@ -134,7 +134,7 @@ globalThis.DefaultRules = (function() { r += `<span class="red">raWidgets missing case for assignment 'V.{rule.setAssignment}'.</span>`; return rule; } - const removeAssignment = ()=> { + const removeAssignment = () => { if (job.facility !== App.Entity.facilities.penthouse) { RAFacilityRemove(slave, rule); // before deleting rule.setAssignment } @@ -1185,12 +1185,11 @@ globalThis.DefaultRules = (function() { rule.growth.dick, rule.growth.balls ].every(r => r === null) // Check if all objects in list equal null - ){ + ) { ProcessOtherDrugs(slave, rule); return; } - /** @typedef {"lips" | "boobs" | "butt" | "dick" | "balls"} DrugTarget */ // Asset Growth const growthDrugs = new Set(["breast injections", "breast redistributors", "butt injections", "butt redistributors", "hyper breast injections", "hyper butt injections", "hyper penis enhancement", "hyper testicle enhancement", "intensive breast injections", "intensive butt injections", "intensive penis enhancement", "intensive testicle enhancement", "lip atrophiers", "lip injections", "penis atrophiers", "penis enhancement", "testicle atrophiers", "testicle enhancement"]); @@ -1741,7 +1740,7 @@ globalThis.DefaultRules = (function() { } } - if (rule.weight !== null || (rule.diet === "attractive") ) { + if (rule.weight !== null || (rule.diet === "attractive")) { weightRule(slave, rule); } if (rule.weight === null && rule.diet !== "attractive" && rule.muscles !== null) { @@ -1933,7 +1932,7 @@ globalThis.DefaultRules = (function() { */ function ProcessRest(slave, rule) { if ((rule.restRules !== undefined) && (rule.restRules !== null)) { - if (slave.rules.rest !== rule.restRules ) { + if (slave.rules.rest !== rule.restRules) { if ([Job.NURSE, Job.HEADGIRL, Job.TEACHER, Job.STEWARD, Job.MATRON, Job.FARMER, Job.MADAM, Job.WARDEN, Job.DJ, Job.MILKMAID].includes(slave.assignment)) { // These assignments enforce "restrictive", do not let RA attempt to change it. } else { @@ -1985,7 +1984,7 @@ globalThis.DefaultRules = (function() { function ProcessRelationship(slave, rule) { if ((slave.fetish !== "mindbroken")) { if ((rule.relationshipRules !== undefined) && (rule.relationshipRules !== null)) { - if (slave.rules.relationship !== rule.relationshipRules ) { + if (slave.rules.relationship !== rule.relationshipRules) { slave.rules.relationship = rule.relationshipRules; r += `<br>${slave.slaveName}'s relationship rules have been set to ${rule.relationshipRules}.`; } @@ -2009,6 +2008,7 @@ globalThis.DefaultRules = (function() { if ((rule.releaseRules !== undefined) && (rule.releaseRules !== null) && processReleaseProp(releaseProperties)) { r += `<br>${slave.slaveName}'s release rules have been set to: ${App.Utils.releaseSummaryLong(slave)}.`; } + function processReleaseProp(releaseProperties) { let changed = false; for (const property of releaseProperties) { @@ -2029,7 +2029,7 @@ globalThis.DefaultRules = (function() { */ function ProcessLactation(slave, rule) { if ((rule.lactationRules !== undefined) && (rule.lactationRules !== null)) { - if (slave.rules.lactation !== rule.lactationRules ) { + if (slave.rules.lactation !== rule.lactationRules) { if ((rule.lactationRules === "induce" && slave.lactation === 0) || (rule.lactationRules === "maintain" && slave.lactation === 1) || (rule.lactationRules === "none")) { slave.rules.lactation = rule.lactationRules; r += `<br>${slave.slaveName}'s lactation rules have been set to ${rule.lactationRules}.`; @@ -2044,7 +2044,7 @@ globalThis.DefaultRules = (function() { */ function ProcessMobility(slave, rule) { if ((rule.mobilityRules !== undefined) && (rule.mobilityRules !== null)) { - if (slave.rules.mobility !== rule.mobilityRules ) { + if (slave.rules.mobility !== rule.mobilityRules) { slave.rules.mobility = rule.mobilityRules; r += `<br>${slave.slaveName}'s usage of mobility aids has been set to ${rule.mobilityRules}.`; } @@ -2684,79 +2684,70 @@ globalThis.DefaultRules = (function() { */ function ProcessSmartPiercings(slave, rule) { if (slave.clitPiercing === 3) { - let _used = 0; if (rule.clitSetting !== undefined && rule.clitSetting !== null && rule.clitSetting !== "random") { if (slave.clitSetting !== rule.clitSetting && slave.fetishStrength !== 100) { slave.clitSetting = rule.clitSetting; - _used = 1; r += `<br>${slave.slaveName}'s smart piercing has been set to ${slave.clitSetting}.`; + return; } else if (slave.fetishStrength < 100) { - _used = 1; + return; } } else if (rule.clitSetting === "random") { slave.clitSetting = either("vanilla", "oral", "anal", "boobs", "submissive", "dom", "humiliation", "pregnancy", "masochist", "sadist"); - _used = 1; r += `<br>${slave.slaveName}'s smart piercing has been set to ${slave.clitSetting}.`; + return; } - if (_used === 0) { - if (rule.clitSettingEnergy !== undefined && (rule.clitSettingEnergy !== null)) { - if (slave.energy < rule.clitSettingEnergy) { - if (slave.clitSetting !== "all") { - r += `<br>${slave.slaveName}'s smart piercing has been set to enhance libido.`; - } - slave.clitSetting = "all"; - _used = 1; - } else if (slave.energy >= rule.clitSettingEnergy + 10) { - if (slave.clitSetting !== "none") { - r += `<br>${slave.slaveName}'s smart piercing has been set to suppress libido.`; - } - slave.clitSetting = "none"; - _used = 1; + if (rule.clitSettingEnergy !== undefined && (rule.clitSettingEnergy !== null)) { + if (slave.energy < rule.clitSettingEnergy) { + if (slave.clitSetting !== "all") { + r += `<br>${slave.slaveName}'s smart piercing has been set to enhance libido.`; } - } - } - if (_used === 0) { - if (rule.clitSettingXY !== undefined && (rule.clitSettingXY !== null)) { - if (slave.attrXY < rule.clitSettingXY) { - if (slave.clitSetting !== "men") { - r += `<br>${slave.slaveName}'s smart piercing has been set to encourage attraction to men.`; - } - slave.clitSetting = "men"; - _used = 1; - } else if (slave.attrXY >= rule.clitSettingXY + 10) { - if (slave.clitSetting !== "anti-men") { - r += `<br>${slave.slaveName}'s smart piercing has been set to discourage attraction to men.`; - } - slave.clitSetting = "anti-men"; - _used = 1; + slave.clitSetting = "all"; + return; + } else if (slave.energy >= rule.clitSettingEnergy + 10) { + if (slave.clitSetting !== "none") { + r += `<br>${slave.slaveName}'s smart piercing has been set to suppress libido.`; } + slave.clitSetting = "none"; + return; } } - if (_used === 0) { - if (rule.clitSettingXX !== undefined && (rule.clitSettingXX !== null)) { - if (slave.attrXX < rule.clitSettingXX) { - if (slave.clitSetting !== "women") { - r += `<br>${slave.slaveName}'s smart piercing has been set to encourage attraction to women.`; - } - slave.clitSetting = "women"; - _used = 1; - } else if (slave.attrXX >= rule.clitSettingXX + 10) { - if (slave.clitSetting !== "anti-women") { - r += `<br>${slave.slaveName}'s smart piercing has been set to discourage attraction to women.`; - } - slave.clitSetting = "anti-women"; - _used = 1; + if (rule.clitSettingXY !== undefined && (rule.clitSettingXY !== null)) { + if (slave.attrXY < rule.clitSettingXY) { + if (slave.clitSetting !== "men") { + r += `<br>${slave.slaveName}'s smart piercing has been set to encourage attraction to men.`; } + slave.clitSetting = "men"; + return; + } else if (slave.attrXY >= rule.clitSettingXY + 10) { + if (slave.clitSetting !== "anti-men") { + r += `<br>${slave.slaveName}'s smart piercing has been set to discourage attraction to men.`; + } + slave.clitSetting = "anti-men"; + return; } } - if (_used === 0) { - if (rule.clitSetting !== undefined && rule.clitSetting !== null && slave.clitSetting !== rule.clitSetting) { - slave.clitSetting = rule.clitSetting; - _used = 1; - r += `<br>${slave.slaveName}'s smart piercing has been set to ${slave.clitSetting}.`; + if (rule.clitSettingXX !== undefined && (rule.clitSettingXX !== null)) { + if (slave.attrXX < rule.clitSettingXX) { + if (slave.clitSetting !== "women") { + r += `<br>${slave.slaveName}'s smart piercing has been set to encourage attraction to women.`; + } + slave.clitSetting = "women"; + return; + } else if (slave.attrXX >= rule.clitSettingXX + 10) { + if (slave.clitSetting !== "anti-women") { + r += `<br>${slave.slaveName}'s smart piercing has been set to discourage attraction to women.`; + } + slave.clitSetting = "anti-women"; + return; } } } + if (rule.clitSetting !== undefined && rule.clitSetting !== null && slave.clitSetting !== rule.clitSetting) { + slave.clitSetting = rule.clitSetting; + r += `<br>${slave.slaveName}'s smart piercing has been set to ${slave.clitSetting}.`; + return; + } } /** diff --git a/src/js/extendedFamilyModeJS.js b/src/js/extendedFamilyModeJS.js index 023ece75ce16de74b4f327cce55d75dceba8da1b..55955af1b9fbea45e2df5188563e6f9b67210464 100644 --- a/src/js/extendedFamilyModeJS.js +++ b/src/js/extendedFamilyModeJS.js @@ -46,10 +46,8 @@ globalThis.isParentP = function(daughter, parent) { globalThis.isGrandmotherP = function(granddaughter, grandmother) { let father; let mother; - if (((mother = getSlave(granddaughter.mother)) && (mother.mother === grandmother.ID)) || ((father = getSlave(granddaughter.father)) && (father.mother === grandmother.ID))) { - return true; - } - return false; + return ((mother = getSlave(granddaughter.mother)) && (mother.mother === grandmother.ID)) + || ((father = getSlave(granddaughter.father)) && (father.mother === grandmother.ID)); }; /** Returns true if grandfather is the grandfather of granddaughter @@ -60,10 +58,8 @@ globalThis.isGrandmotherP = function(granddaughter, grandmother) { globalThis.isGrandfatherP = function(granddaughter, grandfather) { let father; let mother; - if (((mother = getSlave(granddaughter.mother)) && (mother.father === grandfather.ID)) || ((father = getSlave(granddaughter.father)) && (father.father === grandfather.ID))) { - return true; - } - return false; + return ((mother = getSlave(granddaughter.mother)) && (mother.father === grandfather.ID)) + || ((father = getSlave(granddaughter.father)) && (father.father === grandfather.ID)); }; /** Returns true if grandparent is the either the grandmother or grandfather of granddaughter @@ -81,10 +77,7 @@ globalThis.isGrandparentP = function(granddaughter, grandparent) { * @returns {boolean} */ globalThis.sameDad = function(slave1, slave2) { - if ((slave1.father === slave2.father) && (specificDad(slave1))) { - return true; - } - return false; + return (slave1.father === slave2.father) && (specificDad(slave1)); }; /** Returns true if slave1 and slave2 share the same mother @@ -93,10 +86,7 @@ globalThis.sameDad = function(slave1, slave2) { * @returns {boolean} */ globalThis.sameMom = function(slave1, slave2) { - if ((slave1.mother === slave2.mother) && (specificMom(slave1))) { - return true; - } - return false; + return (slave1.mother === slave2.mother) && (specificMom(slave1)); }; /** Returns true if slave1 and slave2 have at least one common parent diff --git a/src/js/findSlave.js b/src/js/findSlave.js index 3ce15a0cc314b84ecaf8d06336a6eaed17d238c6..44796f307e084795873bc16d3f85a8998524ba47 100644 --- a/src/js/findSlave.js +++ b/src/js/findSlave.js @@ -82,6 +82,8 @@ App.FindSlave.searchByExpression = function(query) { if (query) { const resultTitle = App.UI.DOM.appendNewElement("p", frag, "Query results from expression: "); App.UI.DOM.appendNewElement("code", resultTitle, query); + /** @type {function(App.Entity.SlaveState):boolean} */ + // @ts-ignore const pred = new Function("slave", "return (" + query + ");"); const ids = runWithReadonlyProxy(() => { return this._slaveIDs(pred); }); this._appendResultList(ids, frag);