diff --git a/.gitattributes b/.gitattributes index 5e76e859a615ca4605797792a20a3902a9fa63df..d3d1a1483fd037041b2365331ce1b5ce261f8c77 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,4 +1,5 @@ *.bat text eol=crlf +*.js text eol=lf *.tw text eol=lf *.sh text eol=lf *.py text eol=lf diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js index eee279a64b79f0d95ec9e9399c1b7eef12a4f12c..b028235b359e8a38177877876cf89d1d722121fe 100644 --- a/src/js/DefaultRules.js +++ b/src/js/DefaultRules.js @@ -11,7 +11,7 @@ window.DefaultRules = (function() { /** @param {App.Entity.SlaveState} slave */ function DefaultRules(slave) { - if (slave.useRulesAssistant === 0) return r; //exempted + if (slave.useRulesAssistant === 0) return r; // exempted V = State.variables; r = ""; @@ -23,7 +23,7 @@ window.DefaultRules = (function() { if (Object.keys(rule).length === 0) return r; // no rules apply AssignJobToSlave(slave, rule); - if(slave.fuckdoll === 0) { + if (slave.fuckdoll === 0) { ProcessClothing(slave, rule); ProcessCollar(slave, rule); ProcessEyewear(slave, rule); @@ -37,10 +37,12 @@ window.DefaultRules = (function() { ProcessLegAccessory(slave, rule); } ProcessBellyImplant(slave, rule); - if (isFertile(slave) || slave.pregWeek < 0) + if (isFertile(slave) || slave.pregWeek < 0) { ProcessContraceptives(slave, rule); - if (slave.preg > 0 && slave.pregKnown == 1 && slave.broodmother == 0) + } + if (slave.preg > 0 && slave.pregKnown === 1 && slave.broodmother === 0) { ProcessAbortions(slave, rule); + } ProcessOtherDrugs(slave, rule); ProcessAssetGrowthDrugs(slave, rule); ProcessEnema(slave, rule); @@ -50,7 +52,7 @@ window.DefaultRules = (function() { ProcessPenisHormones(slave, rule); ProcessFemaleHormones(slave, rule); ProcessPregnancyDrugs(slave, rule); - if(slave.fuckdoll === 0) { + if (slave.fuckdoll === 0) { ProcessLivingStandard(slave, rule); ProcessSpeech(slave, rule); ProcessRelationship(slave, rule); @@ -61,8 +63,9 @@ window.DefaultRules = (function() { ProcessToyHole(slave, rule); ProcessDietCum(slave, rule); ProcessDietMilk(slave, rule); - if (V.arcologies[0].FSHedonisticDecadenceResearch === 1) + if (V.arcologies[0].FSHedonisticDecadenceResearch === 1) { ProcessSolidFood(slave, rule); + } ProcessTeeth(slave, rule); ProcessStyle(slave, rule); ProcessPiercings(slave, rule); @@ -77,9 +80,9 @@ window.DefaultRules = (function() { /** @param {App.Entity.SlaveState} slave */ function MergeRules(slave) { // merge all rules applying on a slave into one big rule - const rules = V.defaultRules.filter(x => ruleAppliesP(x.condition, slave)); - slave.currentRules = rules.map(x => x.ID); - return mergeRules(rules.map(x => ProcessAssignments(slave, Object.assign({}, x.set)))); + const rules = V.defaultRules.filter((x) => ruleAppliesP(x.condition, slave)); + slave.currentRules = rules.map((x) => x.ID); + return mergeRules(rules.map((x) => ProcessAssignments(slave, Object.assign({}, x.set)))); } /** @param {App.Entity.SlaveState} slave */ @@ -93,77 +96,76 @@ window.DefaultRules = (function() { case "rest": case "please you": - case "choose her own job": // slaves always qualify for this assignment break; case "live with your Head Girl": - if ((V.HGSuiteSlaves < 1 && slave.indentureRestrictions <= 0)) + if ((V.HGSuiteSlaves < 1 && slave.indentureRestrictions <= 0)) { break; - else { + } else { RAFacilityRemove(slave, rule); // before deleting rule.setAssignment delete rule.setAssignment; } break; case "be confined in the arcade": - if ((V.arcadeSlaves < V.arcade && slave.indentureRestrictions <= 0 && (slave.breedingMark !== 1 || V.propOutcome === 0))) + if ((V.arcadeSlaves < V.arcade && slave.indentureRestrictions <= 0 && (slave.breedingMark !== 1 || V.propOutcome === 0))) { break; - else { + } else { RAFacilityRemove(slave, rule); // before deleting rule.setAssignment delete rule.setAssignment; } break; case "serve in the master suite": - if ((V.masterSuiteSlaves < V.masterSuite && (slave.devotion > 20 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20)))) + if ((V.masterSuiteSlaves < V.masterSuite && (slave.devotion > 20 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20)))) { break; - else { + } else { RAFacilityRemove(slave, rule); // before deleting rule.setAssignment delete rule.setAssignment; } break; case "get treatment in the clinic": - if ((V.clinicSlaves < V.clinic && (slave.health < 20 || (slave.chem > 15 && V.Nurse !== 0 && V.clinicUpgradeFilters === 1)) || ((slave.bellyImplant > -1) && (V.bellyImplants === 1)) || slave.preg > 1)) + if ((V.clinicSlaves < V.clinic && (slave.health < 20 || (slave.chem > 15 && V.Nurse !== 0 && V.clinicUpgradeFilters === 1)) || ((slave.bellyImplant > -1) && (V.bellyImplants === 1)) || slave.preg > 1)) { break; - else { + } else { RAFacilityRemove(slave, rule); // before deleting rule.setAssignment delete rule.setAssignment; } break; case "rest in the spa": - if ((V.spaSlaves < V.spa) && (slave.health < 20) || (slave.trust < 60) || (slave.devotion <= 60) || (slave.fetish === "mindbroken") && (slave.devotion >= -20)) + if ((V.spaSlaves < V.spa) && (slave.health < 20) || (slave.trust < 60) || (slave.devotion <= 60) || (slave.fetish === "mindbroken") && (slave.devotion >= -20)) { break; - else { - RAFacilityRemove(slave,rule); // before deleting rule.setAssignment + } else { + RAFacilityRemove(slave, rule); // before deleting rule.setAssignment delete rule.setAssignment; } break; case "work as a nanny": - if ((V.nurserySlaves < V.nursery) && !slave.fuckdoll && (slave.devotion > 20 || slave.trust > 20)) + if ((V.nurserySlaves < V.nursery) && !slave.fuckdoll && (slave.devotion > 20 || slave.trust > 20)) { break; - else { + } else { RAFacilityRemove(slave, rule); // before deleting rule.setAssignment delete rule.setAssignment; } break; case "work in the brothel": - if ((V.brothelSlaves < V.brothel && (slave.devotion > 50 || slave.trust > 50 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20)) && (slave.breedingMark !== 1 || V.propOutcome === 0))) + if ((V.brothelSlaves < V.brothel && (slave.devotion > 50 || slave.trust > 50 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20)) && (slave.breedingMark !== 1 || V.propOutcome === 0))) { break; - else { + } else { RAFacilityRemove(slave, rule); // before deleting rule.setAssignment delete rule.setAssignment; } break; case "serve in the club": - if ((V.clubSlaves < V.club && (slave.devotion > 50 || slave.trust > 50 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20)) && (slave.breedingMark !== 1 || V.propOutcome === 0))) + if ((V.clubSlaves < V.club && (slave.devotion > 50 || slave.trust > 50 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20)) && (slave.breedingMark !== 1 || V.propOutcome === 0))) { break; - else { + } else { RAFacilityRemove(slave, rule); // before deleting rule.setAssignment delete rule.setAssignment; } @@ -171,30 +173,30 @@ window.DefaultRules = (function() { case "work in the dairy": if ((V.dairy > V.dairySlaves+V.bioreactorsXY+V.bioreactorsXX+V.bioreactorsHerm+V.bioreactorsBarren)) { - if ((slave.indentureRestrictions > 0) && (V.dairyRestraintsSetting > 1)) + if ((slave.indentureRestrictions > 0) && (V.dairyRestraintsSetting > 1)) { break; - else if (((slave.indentureRestrictions > 1) && (V.dairyRestraintsSetting > 0)) || (slave.breedingMark === 1 && V.propOutcome === 1 && V.dairyRestriantsSettings > 0) || ((V.dairyPregSetting > 0) && ((slave.bellyImplant !== -1) || (slave.broodmother !== 0)))) + } else if (((slave.indentureRestrictions > 1) && (V.dairyRestraintsSetting > 0)) || (slave.breedingMark === 1 && V.propOutcome === 1 && V.dairyRestriantsSettings > 0) || ((V.dairyPregSetting > 0) && ((slave.bellyImplant !== -1) || (slave.broodmother !== 0)))) { break; - else { + } else { if ((slave.lactation > 0 || ((V.dairySlimMaintainUpgrade === 0 || V.dairySlimMaintain === 0) && (slave.boobs > 300 || slave.dick === 0 || V.dairyImplantsSetting === 1) && V.dairyImplantsSetting !== 2)) || (slave.balls > 0)) { if ((slave.devotion > 20) || ((slave.devotion >= -50) && (slave.trust < -20)) || (slave.trust < -50) || (slave.amp === 1) || (V.dairyRestraintsUpgrade === 1)) { if ((V.dairyStimulatorsSetting < 2) || (slave.anus > 2) || (V.dairyPrepUpgrade === 1)) { - if ((V.dairyPregSetting < 2) || (slave.vagina > 2) || (slave.ovaries === 0) || (V.dairyPrepUpgrade === 1)) + if ((V.dairyPregSetting < 2) || (slave.vagina > 2) || (slave.ovaries === 0) || (V.dairyPrepUpgrade === 1)) { break; - else { - RAFacilityRemove(slave,rule); // before deleting rule.setAssignment + } else { + RAFacilityRemove(slave, rule); // before deleting rule.setAssignment delete rule.setAssignment; } } else { - RAFacilityRemove(slave,rule); // before deleting rule.setAssignment + RAFacilityRemove(slave, rule); // before deleting rule.setAssignment delete rule.setAssignment; } } else { - RAFacilityRemove(slave,rule); // before deleting rule.setAssignment + RAFacilityRemove(slave, rule); // before deleting rule.setAssignment delete rule.setAssignment; } } else { - RAFacilityRemove(slave,rule); // before deleting rule.setAssignment + RAFacilityRemove(slave, rule); // before deleting rule.setAssignment delete rule.setAssignment; } } @@ -202,92 +204,98 @@ window.DefaultRules = (function() { break; case "work as a farmhand": - if ((V.farmyardSlaves < V.farmyard)) //TODO: rework these requirements + if ((V.farmyardSlaves < V.farmyard)) { // TODO: rework these requirements break; - else { + } else { RAFacilityRemove(slave, rule); delete rule.setAssignment; } break; case "work as a servant": - if ((V.servantsQuartersSlaves < V.servantsQuarters && canSee(slave) && canWalk(slave) && (slave.devotion >= -20 || slave.trust < -20 || (slave.devotion >= -50 && slave.trust <= 20)))) + if ((V.servantsQuartersSlaves < V.servantsQuarters && canSee(slave) && canWalk(slave) && (slave.devotion >= -20 || slave.trust < -20 || (slave.devotion >= -50 && slave.trust <= 20)))) { break; - else { - RAFacilityRemove(slave,rule); // before deleting rule.setAssignment + } else { + RAFacilityRemove(slave, rule); // before deleting rule.setAssignment delete rule.setAssignment; } break; case "learn in the schoolroom": - if ((V.schoolroomSlaves < V.schoolroom && slave.fetish !== "mindbroken" && (slave.devotion >= -20 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20)))) - if ((slave.intelligenceImplant < 30) || (slave.voice !== 0 && slave.accent+V.schoolroomUpgradeLanguage > 2) || (slave.oralSkill <= 10+V.schoolroomUpgradeSkills*20) || (slave.whoreSkill <= 10+V.schoolroomUpgradeSkills*20) || (slave.entertainSkill <= 10+V.schoolroomUpgradeSkills*20) || (slave.analSkill < 10+V.schoolroomUpgradeSkills*20) || ((slave.vagina >= 0) && (slave.vaginalSkill < 10+V.schoolroomUpgradeSkills*20))) + if ((V.schoolroomSlaves < V.schoolroom && slave.fetish !== "mindbroken" && (slave.devotion >= -20 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20)))) { + if ((slave.intelligenceImplant < 30) || (slave.voice !== 0 && slave.accent+V.schoolroomUpgradeLanguage > 2) || (slave.oralSkill <= 10+V.schoolroomUpgradeSkills*20) || (slave.whoreSkill <= 10+V.schoolroomUpgradeSkills*20) || (slave.entertainSkill <= 10+V.schoolroomUpgradeSkills*20) || (slave.analSkill < 10+V.schoolroomUpgradeSkills*20) || ((slave.vagina >= 0) && (slave.vaginalSkill < 10+V.schoolroomUpgradeSkills*20))) { break; - else { - RAFacilityRemove(slave,rule); // before deleting rule.setAssignment + } else { + RAFacilityRemove(slave, rule); // before deleting rule.setAssignment delete rule.setAssignment; } - else { - RAFacilityRemove(slave,rule); // before deleting rule.setAssignment + } else { + RAFacilityRemove(slave, rule); // before deleting rule.setAssignment delete rule.setAssignment; } break; case "be confined in the cellblock": - if ((V.cellblockSlaves < V.cellblock && ((slave.devotion < -20 && slave.trust >= -20) || (slave.devotion < -50 && slave.trust >= -50)))) + if ((V.cellblockSlaves < V.cellblock && ((slave.devotion < -20 && slave.trust >= -20) || (slave.devotion < -50 && slave.trust >= -50)))) { break; - else { - RAFacilityRemove(slave,rule); // before deleting rule.setAssignment + } else { + RAFacilityRemove(slave, rule); // before deleting rule.setAssignment delete rule.setAssignment; } break; case "take classes": - if (slave.intelligenceImplant < 15 && slave.fetish !== "mindbroken" && (slave.devotion >= -20 || slave.trust < -50 || (slave.trust < -20 && slave.devotion >= -50))) + if (slave.intelligenceImplant < 15 && slave.fetish !== "mindbroken" && (slave.devotion >= -20 || slave.trust < -50 || (slave.trust < -20 && slave.devotion >= -50))) { break; - else + } else { delete rule.setAssignment; + } break; case "choose her own job": - if ((slave.fetish !== "mindbroken")) + if ((slave.fetish !== "mindbroken")) { break; - else + } else { delete rule.setAssignment; + } break; case "get milked": - if ((slave.lactation > 0 || slave.balls > 0)) + if ((slave.lactation > 0 || slave.balls > 0)) { break; - else + } else { delete rule.setAssignment; + } break; case "be a servant": - if ((canWalk(slave) && canSee(slave) && (slave.devotion >= -20 || slave.trust < -50 || (slave.trust < -20 && slave.devotion >= -50)))) + if ((canWalk(slave) && canSee(slave) && (slave.devotion >= -20 || slave.trust < -50 || (slave.trust < -20 && slave.devotion >= -50)))) { break; - else + } else { delete rule.setAssignment; + } break; case "work a glory hole": - if (slave.indentureRestrictions <= 0 && (slave.breedingMark !== 1 || V.propOutcome === 0)) + if (slave.indentureRestrictions <= 0 && (slave.breedingMark !== 1 || V.propOutcome === 0)) { break; - else + } else { delete rule.setAssignment; + } break; case "whore": case "serve the public": case "stay confined": - if ((slave.fuckdoll === 0) && (slave.breedingMark !== 1 || V.propOutcome === 0)) + if ((slave.fuckdoll === 0) && (slave.breedingMark !== 1 || V.propOutcome === 0)) { break; - else + } else { delete rule.setAssignment; + } break; default: - r += `<span class="red">raWidgets missing case for assignment 'V.{rule.setAssignment}'</span>.`; + r += "<span class=\"red\">raWidgets missing case for assignment 'V.{rule.setAssignment}'</span>."; break; } return rule; @@ -373,23 +381,25 @@ window.DefaultRules = (function() { // apply collar to slave if ((rule.collar !== undefined) && (rule.collar !== "no default setting")) { if ((slave.collar !== rule.collar)) { - r += '<br>'; + r += "<br>"; if (rule.collar === "preg biometrics" && slave.preg <= -1 && slave.ovaries === 0 && slave.mpreg === 0) { slave.collar = "none"; r += `${slave.slaveName} cannot utilize preg biometrics. `; } else if ((rule.collar === "massive dildo gag" && slave.oralSkill <= 50)) { slave.collar = "none"; r += `${slave.slaveName} lacks the oral skill to successfully keep the massive dildo gag in ${his} throat. `; - } else + } else { slave.collar = rule.collar; - if ((slave.collar === "none")) + } + if ((slave.collar === "none")) { r += `${slave.slaveName} has been given no collar.`; - else if ((slave.collar === "pretty jewelry")) + } else if ((slave.collar === "pretty jewelry")) { r += `${slave.slaveName} has been given ${slave.collar}.`; - else if ((["ball gag", "bell collar", "bit gag", "bowtie", "dildo gag", "massive dildo gag", "neck corset", "porcelain mask"].includes(slave.collar))) + } else if ((["ball gag", "bell collar", "bit gag", "bowtie", "dildo gag", "massive dildo gag", "neck corset", "porcelain mask"].includes(slave.collar))) { r += `${slave.slaveName} has been given a ${slave.collar}.`; - else + } else { r += `${slave.slaveName} has been given a ${slave.collar} collar.`; + } } } } @@ -548,12 +558,13 @@ window.DefaultRules = (function() { /** @param {App.Entity.SlaveState} slave */ function ProcessDildos(slave, rule) { // apply vaginal dildos to slave - if (slave.vagina === 0) + if (slave.vagina === 0) { ProcessVVirginDildos(slave, rule); - else if ((slave.vagina > 0) && (slave.anus === 0)) + } else if ((slave.vagina > 0) && (slave.anus === 0)) { ProcessAVirginDildos(slave, rule); - else if (slave.vagina > 0) + } else if (slave.vagina > 0) { ProcessNonVirginDildos(slave, rule); + } } /** @param {App.Entity.SlaveState} slave */ @@ -565,9 +576,9 @@ window.DefaultRules = (function() { switch (slave.vaginalAccessory) { case "huge dildo": r += `<br>${slave.slaveName} is a virgin and has been given a `; - if (slave.vagina >= 2) + if (slave.vagina >= 2) { r += `massive dildo to permanently gape ${his} cunt.`; - else { + } else { r += `large dildo for ${his} pussy, since it must be stretched before it can accommodate a huge one.`; slave.vaginalAccessory = "large dildo"; } @@ -593,9 +604,9 @@ window.DefaultRules = (function() { slave.vaginalAccessory = "huge dildo"; } else { r += `<br>${slave.slaveName} is a virgin and has been given a `; - if (slave.vagina >= 2) + if (slave.vagina >= 2) { r += `massive and oversized dildo to permanently gape ${his} cunt.`; - else { + } else { r += `long, large dildo for ${his} pussy, since it must be stretched before it can accommodate a huge one.`; slave.vaginalAccessory = "long, large dildo"; } @@ -623,9 +634,9 @@ window.DefaultRules = (function() { switch (slave.vaginalAccessory) { case "huge dildo": r += `<br>${slave.slaveName} is a virgin and has been given a `; - if (slave.vagina >= 2) + if (slave.vagina >= 2) { r += `massive dildo to permanently gape ${his} cunt.`; - else { + } else { r += `large dildo for ${his} pussy, since it must be stretched before it can accommodate a huge one.`; slave.vaginalAccessory = "large dildo"; } @@ -651,9 +662,9 @@ window.DefaultRules = (function() { slave.vaginalAccessory = "huge dildo"; } else { r += `<br>${slave.slaveName} is a virgin and has been given a `; - if (slave.vagina >= 2) + if (slave.vagina >= 2) { r += `massive and oversized dildo to permanently gape ${his} cunt.`; - else { + } else { r += `long, large dildo for ${his} pussy, since it must be stretched before it can accommodate a huge one.`; slave.vaginalAccessory = "long, large dildo"; } @@ -681,9 +692,9 @@ window.DefaultRules = (function() { switch (slave.vaginalAccessory) { case "huge dildo": r += `<br>${slave.slaveName} has been given a `; - if (slave.vagina >= 2) + if (slave.vagina >= 2) { r += `massive dildo to permanently gape ${his} cunt.`; - else { + } else { r += `large dildo for ${his} pussy, since it must be stretched before it can accommodate a huge one.`; slave.vaginalAccessory = "large dildo"; } @@ -709,9 +720,9 @@ window.DefaultRules = (function() { slave.vaginalAccessory = "huge dildo"; } else { r += `<br>${slave.slaveName} has been given a `; - if (slave.vagina >= 2) + if (slave.vagina >= 2) { r += `massive and oversized dildo to permanently gape ${his} cunt.`; - else { + } else { r += `long, large dildo for ${his} pussy, since it must be stretched before it can accommodate a huge one.`; slave.vaginalAccessory = "long, large dildo"; } @@ -737,20 +748,22 @@ window.DefaultRules = (function() { if ((rule.aVirginDickAccessory !== undefined) && (rule.aVirginDickAccessory !== "no default setting")) { if ((slave.dickAccessory !== rule.aVirginDickAccessory)) { slave.dickAccessory = rule.aVirginDickAccessory; - if (slave.dickAccessory === "none") + if (slave.dickAccessory === "none") { r += `<br>${slave.slaveName} is a virgin and has been instructed not to wear a dick accessory.`; - else + } else { r += `<br>${slave.slaveName} is a virgin and has been given a ${slave.dickAccessory} accessory for ${his} cock.`; + } } } } else { if ((rule.dickAccessory !== undefined) && (rule.dickAccessory !== "no default setting")) { if ((slave.dickAccessory !== rule.dickAccessory)) { slave.dickAccessory = rule.dickAccessory; - if (slave.dickAccessory === "none") + if (slave.dickAccessory === "none") { r += `<br>${slave.slaveName} has been instructed not to wear a dick accessory.`; - else + } else { r += `<br>${slave.slaveName} has been given a ${slave.dickAccessory} accessory for ${his} cock.`; + } } } } @@ -819,10 +832,11 @@ window.DefaultRules = (function() { slave.bellyAccessory = "none"; } else { slave.bellyAccessory = rule.bellyAccessory; - if (slave.bellyAccessory === "none") + if (slave.bellyAccessory === "none") { r += `<br>${slave.slaveName} has been instructed not to wear a torso accessory.`; - else + } else { r += `<br>${slave.slaveName} has been given ${slave.bellyAccessory} to wear.`; + } } } } @@ -840,10 +854,11 @@ window.DefaultRules = (function() { function ProcessAnalAccessories(slave, rule) { // apply buttplugs and buttplug accessories to slave if (slave.chastityAnus !== 1) { - if (slave.anus === 0) + if (slave.anus === 0) { ProcessAnalVirginButtplugs(slave, rule); - else + } else { ProcessNonVirginButtplugs(slave, rule); + } } ProcessButtplugAttachments(slave, rule); } @@ -857,9 +872,9 @@ window.DefaultRules = (function() { switch (slave.buttplug) { case "huge plug": r += `<br>${slave.slaveName} is an anal virgin and has been given a `; - if ((slave.anus >= 2)) + if ((slave.anus >= 2)) { r += `massive plug to permanently gape ${his} asshole.`; - else { + } else { slave.buttplug = "large plug"; r += `large buttplug for ${his} asshole, since it must be stretched before it can accommodate a huge one.`; } @@ -885,9 +900,9 @@ window.DefaultRules = (function() { slave.buttplug = "huge plug"; } else { r += `<br>${slave.slaveName} is an anal virgin and has been given a `; - if (slave.anus >= 2) + if (slave.anus >= 2) { r += `massive and oversized plug to permanently gape ${his} asshole.`; - else { + } else { r += `long, large buttplug for ${his} asshole, since it must be stretched before it can accommodate a huge one.`; slave.buttplug = "long, large plug"; } @@ -915,9 +930,9 @@ window.DefaultRules = (function() { switch (slave.buttplug) { case "huge plug": r += `<br>${slave.slaveName} has been given a `; - if ((slave.anus >= 2)) + if ((slave.anus >= 2)) { r += `massive plug to permanently gape ${his} asshole.`; - else { + } else { slave.buttplug = "large plug"; r += `large buttplug for ${his} asshole, since it must be stretched before it can accommodate a huge one.`; } @@ -943,9 +958,9 @@ window.DefaultRules = (function() { slave.buttplug = "huge plug"; } else { r += `<br>${slave.slaveName} has been given a `; - if (slave.anus >= 2) + if (slave.anus >= 2) { r += `massive and oversized plug to permanently gape ${his} asshole.`; - else { + } else { r += `long, large buttplug for ${his} asshole, since it must be stretched before it can accommodate a huge one.`; slave.buttplug = "long, large plug"; } @@ -968,12 +983,11 @@ window.DefaultRules = (function() { function ProcessButtplugAttachments(slave, rule) { // apply buttplug accessories to slaves if (slave.buttplug === "none" && slave.buttplugAttachment !== "none") { - slave.buttplugAttachment = "none"; //clears buttplug attachments when buttplugs are removed above + slave.buttplugAttachment = "none"; // clears buttplug attachments when buttplugs are removed above } else if ((rule.buttplugAttachment !== undefined) && (rule.buttplugAttachment !== "no default setting")) { if ((slave.buttplugAttachment !== rule.buttplugAttachment)) { slave.buttplugAttachment = rule.buttplugAttachment; switch (slave.buttplugAttachment) { - case "none": r += `<br>${slave.slaveName} has been instructed not to use an attachment for ${his} anal accessory.`; break; @@ -1046,8 +1060,9 @@ window.DefaultRules = (function() { } } } else { // bellyDown - if (slave.bellyImplant < 0) + if (slave.bellyImplant < 0) { slave.bellyImplant = 0; + } SetBellySize(slave); if (slave.devotion > 50) { slave.devotion += 3; @@ -1073,13 +1088,12 @@ window.DefaultRules = (function() { } } } - + /** @param {App.Entity.SlaveState} slave */ function ProcessAbortions(slave, rule) { if ((rule.abortion !== undefined) && (rule.abortion !== "no default setting")) { if (rule.abortion === "all") { - - if (slave.preg < 4 || (slave.fetish === "mindbroken" || slave.fuckdoll != 0)) { + if (slave.preg < 4 || (slave.fetish === "mindbroken" || slave.fuckdoll !== 0)) { r += `<br>${slave.slaveName}'s pregnancy has been terminated.`; } else { r += `<br>${slave.slaveName}'s pregnancy has been terminated; `; @@ -1094,7 +1108,7 @@ window.DefaultRules = (function() { slave.trust -= 10, slave.devotion -= 10; } else if (slave.fetish === "pregnancy") { r += `${he} did not handle it well.`; - var fetishModifier = (slave.fetishStrength / 2); + let fetishModifier = (slave.fetishStrength / 2); slave.devotion -= (1 * fetishModifier), (slave.trust -= 1 * fetishModifier); } else if (slave.devotion <= 20) { r += `${he} did not handle it well.`; @@ -1103,20 +1117,26 @@ window.DefaultRules = (function() { r += `${he} did not handle it well.`; slave.trust -= 10; } else { - r += `it had little mental effect.`; + r += "it had little mental effect."; } } - if (lastPregRule(slave, V.defaultRules)) { slave.preg = -1; } else { slave.preg = 0; } - if (slave.abortionTat > -1) { slave.abortionTat++, cashX(forceNeg(V.surgeryCost), "slaveSurgery", slave); } + if (lastPregRule(slave, V.defaultRules)) { + slave.preg = -1; + } else { + slave.preg = 0; + } + if (slave.abortionTat > -1) { + slave.abortionTat++, cashX(forceNeg(V.surgeryCost), "slaveSurgery", slave); + } V.reservedChildren = FetusGlobalReserveCount("incubator"); V.reservedChildrenNursery = FetusGlobalReserveCount("nursery"); slave.pregType = 0, slave.pregSource = 0, slave.pregKnown = 0, slave.pregWeek = -2; WombFlush(slave); } else if (rule.abortion === "male") { if (slave.preg < 4) { - var WL = slave.womb.length; - for (var index = 0; index < WL; index++) { + let WL = slave.womb.length; + for (let index = 0; index < WL; index++) { if (slave.womb[index].genetics.gender === "XY") { WombRemoveFetus(slave, index); index--; @@ -1131,8 +1151,8 @@ window.DefaultRules = (function() { } } else if (rule.abortion === "female") { if (slave.preg < 4) { - var WL = slave.womb.length; - for (var index = 0; index < WL; index++) { + let WL = slave.womb.length; + for (let index = 0; index < WL; index++) { if (slave.womb[index].genetics.gender === "XX") { WombRemoveFetus(slave, index); index--; @@ -1142,7 +1162,6 @@ window.DefaultRules = (function() { if (WL === 0) { slave.pregType = 0, slave.pregSource = 0, slave.pregKnown = 0, slave.pregWeek = -2; WombFlush(slave); - } r += `<br>${slave.slaveName}'s female fetuses have been terminated.`; } @@ -1154,7 +1173,7 @@ window.DefaultRules = (function() { /** @param {App.Entity.SlaveState} slave */ function ProcessAssetGrowthDrugs(slave, rule) { // Asset Growth - const growth_drugs = 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"]); + 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"]); if ((slave.drugs === "super fertility drugs" || slave.drugs === "fertility drugs") && isFertile(slave)) { r += `<br>${slave.slaveName} is on ${slave.drugs} and will not be considered for drug enhancement until that regime is complete.`; return; @@ -1171,7 +1190,7 @@ window.DefaultRules = (function() { } else if ((slave.boobs > parseInt(rule.growth_boobs)+200) && slave.weight < 100 && (V.arcologies[0].FSSlimnessEnthusiastResearch === 1)) { _priority = { drug: "breast redistributors", - weight: (1+((slave.boobs-slave.boobsImplant-slave.boobsMilk-rule.growth_boobs)/rule.growth_boobs)) }; + weight: (1+((slave.boobs-slave.boobsImplant-slave.boobsMilk-rule.growth_boobs)/rule.growth_boobs))}; _priorities.push(_priority); } } @@ -1183,7 +1202,7 @@ window.DefaultRules = (function() { } else if ((Math.trunc(slave.butt) > rule.growth_butt) && slave.weight < 100 && (V.arcologies[0].FSSlimnessEnthusiastResearch === 1)) { _priority = { drug: "butt redistributors", - weight: (1+((slave.butt-slave.buttImplant-rule.growth_butt)/rule.growth_butt)) }; + weight: (1+((slave.butt-slave.buttImplant-rule.growth_butt)/rule.growth_butt))}; _priorities.push(_priority); } } @@ -1224,12 +1243,14 @@ window.DefaultRules = (function() { } } if (_priorities.length > 1) { - _priorities = _priorities.sort(function(a, b){if(a.weight > b.weight) return -1; if(a.weight < b.weight) return 1; return 0;}); + _priorities = _priorities.sort(function(a, b) { + if (a.weight > b.weight) return -1; if (a.weight < b.weight) return 1; return 0; + }); if (slave.drugs !== _priorities[0].drug) { slave.drugs = _priorities[0].drug; r += `<br>${slave.slaveName} has been put on `; if (rule.growth_intensity && slave.drugs !== "lip injections" && slave.health > 0) { - slave.drugs = "intensive " + slave.drugs; + slave.drugs = `intensive ${ slave.drugs}`; r += `${slave.drugs}, since ${he}'s healthy enough to take them, and `; } else { r += `${slave.drugs}, since `; @@ -1245,14 +1266,15 @@ window.DefaultRules = (function() { slave.drugs = _priorities[0].drug; r += `<br>${slave.slaveName} has been put on `; if (rule.growth_intensity && slave.drugs !== "lip injections" && slave.health > 0) { - slave.drugs = "intensive " + slave.drugs; + slave.drugs = `intensive ${ slave.drugs}`; r += `${slave.drugs}, since ${he}'s healthy enough to take them, and `; - } else + } else { r += `${slave.drugs}, since `; + } r += `that is the only part of ${his} body that does not meet the targeted size.`; } return; - } else if (growth_drugs.has(slave.drugs)) { + } else if (growthDrugs.has(slave.drugs)) { slave.drugs = "no drugs"; r += `<br>${slave.slaveName}'s body has met all relevant growth targets, so ${his} pharmaceutical regime has been ended.`; return; @@ -1350,7 +1372,7 @@ window.DefaultRules = (function() { } } } - if (growth_drugs.has(slave.drugs)) { + if (growthDrugs.has(slave.drugs)) { slave.drugs = "no drugs"; r += `<br>${slave.slaveName} has met all relevant growth targets, so ${his} pharmaceutical regime has been ended.`; return; @@ -1364,143 +1386,158 @@ window.DefaultRules = (function() { if (slave.indentureRestrictions < 2 && rule.drug !== "no default setting" && slave.drugs !== rule.drug) { let flag = true; switch (rule.drug) { - case "anti-aging cream": - if (slave.visualAge < 18) - flag = false; - break; - - case "growth stimulants": - if (!(slave.height < 274 && slave.height < Math.clamp((Height.mean(slave) * 1.25),0,274))) - flag = false; - break; - - case "sag-B-gone": - if (!(slave.boobs > 250 && slave.boobShape !== "saggy")) - flag = false; - break; + case "anti-aging cream": + if (slave.visualAge < 18) { + flag = false; + } + break; - case "female hormone injections": - if (!((slave.breedingMark !== 1 || V.propOutcome === 0) && (slave.ovaries === 1 || slave.mpreg === 1) && slave.pubertyXX === 0)) - flag = false; - break; + case "growth stimulants": + if (!(slave.height < 274 && slave.height < Math.clamp((Height.mean(slave) * 1.25), 0, 274))) { + flag = false; + } + break; - case "male hormone injections": - if (!((slave.breedingMark !== 1 || V.propOutcome === 0) && slave.balls > 0 && slave.pubertyXY === 0)) - flag = false; - break; + case "sag-B-gone": + if (!(slave.boobs > 250 && slave.boobShape !== "saggy")) { + flag = false; + } + break; - case "psychosuppressants": - if (!(slave.intelligence > -100 && slave.indentureRestrictions < 1)) - flag = false; - break; + case "female hormone injections": + if (!((slave.breedingMark !== 1 || V.propOutcome === 0) && (slave.ovaries === 1 || slave.mpreg === 1) && slave.pubertyXX === 0)) { + flag = false; + } + break; - case "breast injections": - if (!(slave.boobs < 48000)) - flag = false; - break; + case "male hormone injections": + if (!((slave.breedingMark !== 1 || V.propOutcome === 0) && slave.balls > 0 && slave.pubertyXY === 0)) { + flag = false; + } + break; - case "hyper breast injections": - if (!(slave.boobs < 48000)) - flag = false; - break; + case "psychosuppressants": + if (!(slave.intelligence > -100 && slave.indentureRestrictions < 1)) { + flag = false; + } + break; - case "breast redistributors": - if (!(slave.boobs - slave.boobsImplant > 100)) - flag = false; - break; + case "breast injections": + if (!(slave.boobs < 48000)) { + flag = false; + } + break; - case "butt injections": - if (!(slave.butt < 9)) - flag = false; - break; + case "hyper breast injections": + if (!(slave.boobs < 48000)) { + flag = false; + } + break; - case "hyper butt injections": - if (!(slave.butt < 20)) - flag = false; - break; + case "breast redistributors": + if (!(slave.boobs - slave.boobsImplant > 100)) { + flag = false; + } + break; - case "nipple atrophiers": - if (!(["cute", "huge", "puffy"].includes(slave.nipples))) - flag = false; - break; + case "butt injections": + if (!(slave.butt < 9)) { + flag = false; + } + break; - case "butt redistributors": - if (!(slave.buttImplant > 0)) - flag = false; - break; + case "hyper butt injections": + if (!(slave.butt < 20)) { + flag = false; + } + break; - case "lip injections": - if (!(slave.lips <= 95 || (slave.lips <= 85 && V.seeExtreme !== 1))) - flag = false; - break; + case "nipple atrophiers": + if (!(["cute", "huge", "puffy"].includes(slave.nipples))) { + flag = false; + } + break; - case "lip atrophiers": - if (!(slave.lips - slave.lipsImplant > 0)) - flag = false; - break; + case "butt redistributors": + if (!(slave.buttImplant > 0)) { + flag = false; + } + break; - case "super fertility drugs": - if (!(slave.indentureRestrictions < 1 && (slave.breedingMark !== 1 || V.propOutcome === 0))) - flag = false; - break; + case "lip injections": + if (!(slave.lips <= 95 || (slave.lips <= 85 && V.seeExtreme !== 1))) { + flag = false; + } + break; - case "penis enhancement": - if (!((slave.dick > 0 && slave.dick < 10) || slave.clit < 5)) - flag = false; - break; + case "lip atrophiers": + if (!(slave.lips - slave.lipsImplant > 0)) { + flag = false; + } + break; - case "hyper penis enhancement": - if (!((slave.dick > 0 && slave.dick < 31) || slave.clit < 5)) - flag = false; - break; + case "super fertility drugs": + if (!(slave.indentureRestrictions < 1 && (slave.breedingMark !== 1 || V.propOutcome === 0))) { + flag = false; + } + break; - case "penis atrophiers": - if (!(slave.dick > 1)) - flag = false; - break; + case "penis enhancement": + if (!((slave.dick > 0 && slave.dick < 10) || slave.clit < 5)) { + flag = false; + } + break; - case "testicle enhancement": - if (!(slave.balls > 0)) - flag = false; - break; + case "hyper penis enhancement": + if (!((slave.dick > 0 && slave.dick < 31) || slave.clit < 5)) { + flag = false; + } + break; - case "hyper testicle enhancement": - if (!(slave.balls > 0)) - flag = false; - break; + case "penis atrophiers": + if (!(slave.dick > 1)) { + flag = false; + } + break; - case "testicle atrophiers": - if (!(slave.balls > 1)) - flag = false; - break; + case "testicle enhancement": + if (!(slave.balls > 0)) { + flag = false; + } + break; - case "clitoris atrophiers": - if (!(slave.clit > 0)) - flag = false; - break; + case "hyper testicle enhancement": + if (!(slave.balls > 0)) { + flag = false; + } + break; - case "labia atrophiers": - if (!(slave.labia > 0)) - flag = false; - break; + case "testicle atrophiers": + if (!(slave.balls > 1)) { + flag = false; + } + break; - case "appetite suppressors": - if (!(slave.weight <= -95)) - flag = false; - break; + case "clitoris atrophiers": + if (!(slave.clit > 0)) { + flag = false; + } + break; - case "female hormone injections": - if (!((slave.breedingMark !== 1 || V.propOutcome === 0) && (slave.ovaries === 1 || slave.mpreg === 1) && slave.pubertyXX === 0)) - flag = false; - break; + case "labia atrophiers": + if (!(slave.labia > 0)) { + flag = false; + } + break; - case "male hormone injections": - if (!(slave.balls > 0 && slave.pubertyXY === 0)) - flag = false; - break; + case "appetite suppressors": + if (!(slave.weight <= -95)) { + flag = false; + } + break; - default: - break; + default: + break; } if (flag) { slave.drugs = rule.drug; @@ -1583,7 +1620,6 @@ window.DefaultRules = (function() { slave.diet = "restricted"; r += `<br>${slave.slaveName} is too fat so ${his} diet has been set to restricted.`; } - } else if ((slave.weight - rule.diet) < -5) { if ((slave.diet !== "fattening")) { slave.diet = "fattening"; @@ -1674,7 +1710,7 @@ window.DefaultRules = (function() { r += `<br>${slave.slaveName} has been put on a diet of cleansers.`; } } else if ((rule.diet === "fertility")) { - if (isFertile(slave) && slave.preg == 0) { + if (isFertile(slave) && slave.preg === 0) { if ((slave.diet !== "fertility")) { slave.diet = "fertility"; r += `<br>${slave.slaveName} has been put on a diet to enhance fertility.`; @@ -1747,7 +1783,7 @@ window.DefaultRules = (function() { slave.curatives = rule.curatives; } } else { - r += `<br>${slave.slaveName} has been ${rule.curatives > 0 ? `put on preventatives` : `taken off health drugs`}`; + r += `<br>${slave.slaveName} has been ${rule.curatives > 0 ? "put on preventatives" : "taken off health drugs"}`; slave.curatives = rule.curatives; } } @@ -1758,7 +1794,7 @@ window.DefaultRules = (function() { function ProcessAphrodisiacs(slave, rule) { if ((rule.aphrodisiacs !== undefined) && (rule.aphrodisiacs !== "no default setting")) { if (slave.aphrodisiacs !== rule.aphrodisiacs) { - r += `<br>${slave.slaveName} has been ${rule.aphrodisiacs > 0 ? `put on the proper` : `taken off`} aphrodisiacs.`; + r += `<br>${slave.slaveName} has been ${rule.aphrodisiacs > 0 ? "put on the proper" : "taken off"} aphrodisiacs.`; slave.aphrodisiacs = rule.aphrodisiacs; } } @@ -1850,7 +1886,7 @@ window.DefaultRules = (function() { function ProcessLivingStandard(slave, rule) { if ((rule.livingRules !== undefined) && (rule.livingRules !== "no default setting")) { if (setup.facilityCareers.includes(slave.assignment)) { - r += ``; // `<br>${slave.slaveName}'s living standards are controlled by ${his} assignment.`; + r += ""; // `<br>${slave.slaveName}'s living standards are controlled by ${his} assignment.`; } else if (((slave.assignment === "be your Head Girl") && (V.HGSuite === 1)) || ((slave.assignment === "guard you") && (V.dojo > 1))) { r += `<br>${slave.slaveName} has a private room.`; } else if ((slave.fetish === "mindbroken")) { @@ -1863,10 +1899,11 @@ window.DefaultRules = (function() { if (V.roomsPopulation <= V.rooms-0.5) { slave.livingRules = rule.livingRules; r += `<br>${slave.slaveName}'s living standard has been set to ${rule.livingRules}.`; - if (slave.relationship >= 4) + if (slave.relationship >= 4) { V.roomsPopulation += 0.5; - else + } else { V.roomsPopulation += 1; + } } else { slave.livingRules = "normal"; r += `<br>${slave.slaveName}'s living standard has been set to normal, since there is no room for ${him} to occupy.`; @@ -1915,7 +1952,7 @@ window.DefaultRules = (function() { if ((slave.fetish !== "mindbroken")) { if ((rule.relationshipRules !== undefined) && (rule.relationshipRules !== "no default setting")) { if ((slave.relationshipRules !== rule.relationshipRules )) { - slave.relationshipRules = rule.relationshipRules ; + slave.relationshipRules = rule.relationshipRules; r += `<br>${slave.slaveName}'s relationship rules have been set to ${rule.relationshipRules}.`; } } @@ -1927,10 +1964,11 @@ window.DefaultRules = (function() { if ((rule.releaseRules !== undefined) && (rule.releaseRules !== "no default setting")) { let _release = 0; if (rule.releaseRules === "restrictive" && - !(["be a subordinate slave", "be confined in the arcade", "be your Head Girl", "get milked", "please you", "serve in the club", "serve in the master suite", "serve the public", "whore", "work a glory hole", "work as a farmhand", "work in the brothel", "work in the dairy"].contains(slave.assignment))) + !(["be a subordinate slave", "be confined in the arcade", "be your Head Girl", "get milked", "please you", "serve in the club", "serve in the master suite", "serve the public", "whore", "work a glory hole", "work as a farmhand", "work in the brothel", "work in the dairy"].contains(slave.assignment))) { _release = 1; - else + } else { _release = 1; + } if ((slave.fetish === "mindbroken") && (slave.releaseRules !== "permissive")) { slave.releaseRules = "permissive"; r += `<br>Since ${slave.slaveName} is mindbroken, ${his} masturbation rules have been set to permissive.`; @@ -1948,7 +1986,7 @@ window.DefaultRules = (function() { function ProcessPunishment(slave, rule) { if ((rule.standardPunishment !== undefined) && (rule.standardPunishment !== "no default setting")) { if ((slave.standardPunishment !== rule.standardPunishment)) { - slave.standardPunishment = rule.standardPunishment ; + slave.standardPunishment = rule.standardPunishment; r += `<br>${slave.slaveName}'s typical punishment has been updated to ${rule.standardPunishment}.`; } } @@ -1958,7 +1996,7 @@ window.DefaultRules = (function() { function ProcessReward(slave, rule) { if ((rule.standardReward !== undefined) && (rule.standardReward !== "no default setting")) { if ((slave.standardReward !== rule.standardReward)) { - slave.standardReward = rule.standardReward ; + slave.standardReward = rule.standardReward; r += `<br>${slave.slaveName}'s typical reward has been updated to ${rule.standardReward}.`; } } @@ -1969,30 +2007,30 @@ window.DefaultRules = (function() { if ((rule.toyHole !== undefined) && (rule.toyHole !== "no default setting")) { if (rule.toyHole === "pussy") { if (slave.vagina > 0 && canDoVaginal(slave)) { - slave.toyHole = rule.toyHole ; + slave.toyHole = rule.toyHole; r += `<br>${slave.slaveName} has been instructed to use ${his} ${rule.toyHole} to please you.`; } else if (slave.toyHole !== "all her holes") { - slave.toyHole = "all her holes" ; + slave.toyHole = "all her holes"; r += `<br>${slave.slaveName}'s hole preference has defaulted to all ${his} holes.`; } } else if (rule.toyHole === "ass") { if (slave.anus > 0 && canDoAnal(slave)) { - slave.toyHole = rule.toyHole ; + slave.toyHole = rule.toyHole; r += `<br>${slave.slaveName} has been instructed to use ${his} ${rule.toyHole} to please you.`; } else if (slave.toyHole !== "all her holes") { - slave.toyHole = "all her holes" ; + slave.toyHole = "all her holes"; r += `<br>${slave.slaveName}'s hole preference has defaulted to all ${his} holes.`; } } else if (rule.toyHole === "dick") { if (slave.dick > 0 && canPenetrate(slave)) { - slave.toyHole = rule.toyHole ; + slave.toyHole = rule.toyHole; r += `<br>${slave.slaveName} has been instructed to use ${his} ${rule.toyHole} to please you.`; } else if (slave.toyHole !== "all her holes") { - slave.toyHole = "all her holes" ; + slave.toyHole = "all her holes"; r += `<br>${slave.slaveName}'s hole preference has defaulted to all ${his} holes.`; } } else if ((slave.toyHole !== rule.toyHole)) { - slave.toyHole = rule.toyHole ; + slave.toyHole = rule.toyHole; r += `<br>${slave.slaveName} has been instructed to use ${his} ${rule.toyHole} to please you.`; } } @@ -2007,10 +2045,11 @@ window.DefaultRules = (function() { r += `<br>${slave.slaveName} has been put on a diet based on cum.`; slave.dietMilk = 0; } - if (slave.dietCum === 1) + if (slave.dietCum === 1) { r += `<br>${slave.slaveName} has had cum added to ${his} diet.`; - else + } else { r += `<br>${slave.slaveName} has had cum removed from ${his} diet.`; + } } } } @@ -2024,10 +2063,11 @@ window.DefaultRules = (function() { r += `<br>${slave.slaveName} has been put on a diet based on human milk.`; slave.dietCum = 0; } - if (slave.dietMilk === 1) + if (slave.dietMilk === 1) { r += `<br>${slave.slaveName} has had human milk added to ${his} diet.`; - else + } else { r += `<br>${slave.slaveName} has had human milk removed from ${his} diet.`; + } } } } @@ -2036,11 +2076,12 @@ window.DefaultRules = (function() { function ProcessSolidFood(slave, rule) { if ((rule.onDiet !== undefined) && (rule.onDiet !== "no default setting")) { if ((slave.onDiet !== rule.onDiet)) { - slave.onDiet = rule.onDiet ; - if (slave.onDiet === 1) + slave.onDiet = rule.onDiet; + if (slave.onDiet === 1) { r += `<br>${slave.slaveName} is not permitted to eat the solid slave food.`; - else + } else { r += `<br>${slave.slaveName} is permitted to eat the solid slave food.`; + } } } } @@ -2133,8 +2174,9 @@ window.DefaultRules = (function() { if ((rule.hStyle === "shaved")) { slave.hLength = 0; r += `<br>${slave.slaveName}'s hair has been shaved.`; - } else + } else { r += `<br>${slave.slaveName}'s hair has been restyled.`; + } } } } @@ -2149,8 +2191,8 @@ window.DefaultRules = (function() { cashX(forceNeg(V.modCost*Math.trunc((rule.hLength-slave.hLength)/10)), "slaveMod"); r += `<br>${slave.slaveName} has been given extensions; ${his} hair `; } - r += `is now ${lengthToEitherUnit(rule.hLength)} long.`; - slave.hLength = rule.hLength; + r += `is now ${lengthToEitherUnit(rule.hLength)} long.`; + slave.hLength = rule.hLength; } } } @@ -2268,10 +2310,10 @@ window.DefaultRules = (function() { } if (rule.markings !== undefined && (rule.markings !== "no default setting")) { - if (slave.markings == "beauty mark" && (rule.markings == "remove beauty marks" || rule.markings == "remove both")) { + if (slave.markings === "beauty mark" && (rule.markings === "remove beauty marks" || rule.markings === "remove both")) { r += `<br>${slave.slaveName}'s beauty mark has been removed.`; } - if (slave.markings == "birthmark" && (rule.markings == "remove birthmarks" || rule.markings == "remove both")) { + if (slave.markings === "birthmark" && (rule.markings === "remove birthmarks" || rule.markings === "remove both")) { r += `<br>${slave.slaveName}'s birthmark has been bleached away.`; } slave.markings = "none"; @@ -2287,8 +2329,6 @@ window.DefaultRules = (function() { r += `<br>${slave.slaveName}'s skin color has been set to ${rule.skinColor}.`; } } - - } function ProcessPiercings(slave, rule) { @@ -2324,22 +2364,24 @@ window.DefaultRules = (function() { if ((slave.clitPiercing !== rule.clitPiercing)) { if ((rule.clitPiercing === 0)) { slave.clitPiercing = 0; - if (slave.dick > 0) + if (slave.dick > 0) { r += `<br>${slave.slaveName}'s frenulum piercing has been removed.`; - else + } else { r += `<br>${slave.slaveName}'s clit piercing has been removed.`; - + } } else if ((slave.vagina !== -1) || (slave.dick !== 0)) { slave.clitPiercing = rule.clitPiercing; - if (slave.dick > 0) + if (slave.dick > 0) { r += `<br>${slave.slaveName}'s frenulum has been pierced.`; - else + } else { r += `<br>${slave.slaveName}'s clit has been pierced.`; + } - if (rule.clitPiercing === 3) + if (rule.clitPiercing === 3) { cashX(-1000, "slaveMod"); - else + } else { cashX(forceNeg(V.modCost), "slaveMod", slave); + } } } } @@ -2642,11 +2684,12 @@ window.DefaultRules = (function() { if ((slave.health > -20)) { slave.brand = V.brandDesign; slave.brandLocation = V.brandTarget; - if ((slave.devotion < 18)) + if ((slave.devotion < 18)) { slave.devotion -= 5; + } slave.trust -= 5; slave.health -= 10; - r += `<br>${slave.slaveName} has been branded, with <span class="gold">fear</span>${slave.devotion < 18? `, <span class="mediumorchid">regard,</span>`:``} and <span class="red">health</span> consequences.`; + r += `<br>${slave.slaveName} has been branded, with <span class="gold">fear</span>${slave.devotion < 18? ", <span class=\"mediumorchid\">regard,</span>":""} and <span class="red">health</span> consequences.`; } } } @@ -2662,7 +2705,9 @@ window.DefaultRules = (function() { } slave.pornFeed = rule.pornFeed; let yesno = slave.pornFeed ? "are now" : "are no longer"; - if (slave.pornFeed === 0) { slave.pornFameSpending = 0;} + if (slave.pornFeed === 0) { + slave.pornFameSpending = 0; + } r += `<br>Highlights of ${slave.slaveName}'s sex life ${yesno} being released.`; } @@ -2679,13 +2724,13 @@ window.DefaultRules = (function() { /** @param {App.Entity.SlaveState} slave */ function ProcessLabel(slave, rule) { - if (rule.label !== "no default setting" && !slave.customLabel.includes("["+rule.label+"]")) { - slave.customLabel = slave.customLabel + "[" + rule.label + "]"; + if (rule.label !== "no default setting" && !slave.customLabel.includes(`[${rule.label}]`)) { + slave.customLabel = `${slave.customLabel }[${ rule.label }]`; r += `<br>${slave.slaveName} has been tagged as ${rule.label}`; } - if (rule.removeLabel !== "no default setting" && slave.customLabel.includes("["+rule.removeLabel+"]")) { - slave.customLabel = slave.customLabel.replace("["+rule.removeLabel+"]", ""); + if (rule.removeLabel !== "no default setting" && slave.customLabel.includes(`[${rule.removeLabel}]`)) { + slave.customLabel = slave.customLabel.replace(`[${rule.removeLabel}]`, ""); r += `<br>${slave.slaveName}'s tag [${rule.removeLabel}] is removed.`; } } diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js index 3e8d36da42a552794981c4a744b119dd30adacd8..923ec88aa2a87acdc08af7d20bd44502975c4f77 100644 --- a/src/js/datatypeCleanupJS.js +++ b/src/js/datatypeCleanupJS.js @@ -199,8 +199,8 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() { slave.analArea = Math.max(+slave.analArea, 0) || 0; } - /** @param {App.Entity.SlaveState} slave */ - function slaveNekoDatatypeCleanup(slave) { + /** @param {App.Entity.SlaveState} slave */ + function slaveNekoDatatypeCleanup(slave) { if (typeof slave.earShape !== "string") { slave.earShape = "normal"; } @@ -1442,10 +1442,13 @@ window.FacilityDatatypeCleanup = (function() { function FacilityIDArrayCleanup() { function helperFunction(facilityIDArray) { - if (!Array.isArray(facilityIDArray)) + if (!Array.isArray(facilityIDArray)) { facilityIDArray = []; - else if (typeof facilityIDArray[0] === "object") - facilityIDArray = facilityIDArray.map(function(a) { return a.ID; }); + } else if (typeof facilityIDArray[0] === "object") { + facilityIDArray = facilityIDArray.map(function(a) { + return a.ID; + }); + } } helperFunction(V.BrothiIDs); helperFunction(V.DairyiIDs); @@ -1509,7 +1512,9 @@ window.FacilityDatatypeCleanup = (function() { V.brothel = Math.max(+V.brothel, 0) || 0; V.brothelUpgradeDrugs = Math.clamp(+V.brothelUpgradeDrugs, 0, 2) || 0; /* madam */ - V.Madam = V.slaves.find(function(s) { return s.assignment === "be the Madam"; }) || 0; + V.Madam = V.slaves.find(function(s) { + return s.assignment === "be the Madam"; + }) || 0; V.MadamIgnoresFlaws = Math.clamp(+V.MadamIgnoresFlaws, 0, 1) || 0; } @@ -1539,7 +1544,9 @@ window.FacilityDatatypeCleanup = (function() { V.bioreactorsXY = Math.max(+V.bioreactorsXY, 0) || 0; V.bioreactorsBarren = Math.max(+V.bioreactorsBarren, 0) || 0; /* milkmaid */ - V.Milkmaid = V.slaves.find(function(s) { return s.assignment === "be the Milkmaid"; }) || 0; + V.Milkmaid = V.slaves.find(function(s) { + return s.assignment === "be the Milkmaid"; + }) || 0; V.milkmaidImpregnates = Math.clamp(+V.milkmaidImpregnates, 0, 1) || 0; } @@ -1556,7 +1563,9 @@ window.FacilityDatatypeCleanup = (function() { V.club = Math.max(+V.club, 0) || 0; V.clubUpgradePDAs = Math.clamp(+V.clubUpgradePDAs, 0, 1) || 0; /* madam */ - V.DJ = V.slaves.find(function(s) { return s.assignment === "be the DJ"; }) || 0; + V.DJ = V.slaves.find(function(s) { + return s.assignment === "be the DJ"; + }) || 0; V.DJignoresFlaws = Math.clamp(+V.DJignoresFlaws, 0, 1) || 0; } @@ -1565,7 +1574,9 @@ window.FacilityDatatypeCleanup = (function() { V.servantsQuarters = Math.max(+V.servantsQuarters, 0) || 0; V.servantsQuartersUpgradeMonitoring = Math.clamp(+V.servantsQuartersUpgradeMonitoring, 0, 1) || 0; /* stewardess */ - V.Stewardess = V.slaves.find(function(s) { return s.assignment === "be the Stewardess"; }) || 0; + V.Stewardess = V.slaves.find(function(s) { + return s.assignment === "be the Stewardess"; + }) || 0; V.stewardessImpregnates = Math.clamp(+V.stewardessImpregnates, 0, 1) || 0; } @@ -1576,7 +1587,9 @@ window.FacilityDatatypeCleanup = (function() { V.schoolroomUpgradeLanguage = Math.clamp(+V.schoolroomUpgradeLanguage, 0, 1) || 0; V.schoolroomUpgradeRemedial = Math.clamp(+V.schoolroomUpgradeRemedial, 0, 1) || 0; /* schoolteacher */ - V.Schoolteacher = V.slaves.find(function(s) { return s.assignment === "be the Schoolteacher"; }) || 0; + V.Schoolteacher = V.slaves.find(function(s) { + return s.assignment === "be the Schoolteacher"; + }) || 0; } function SpaDatatypeCleanup() { @@ -1584,7 +1597,9 @@ window.FacilityDatatypeCleanup = (function() { V.spa = Math.max(+V.spa, 0) || 0; V.spaUpgrade = Math.clamp(+V.spaUpgrade, 0, 1) || 0; /* attendant */ - V.Attendant = V.slaves.find(function(s) { return s.assignment === "be the Attendant"; }) || 0; + V.Attendant = V.slaves.find(function(s) { + return s.assignment === "be the Attendant"; + }) || 0; V.spaFix = Math.clamp(+V.spaFix, 0, 2) || 0; } @@ -1597,7 +1612,9 @@ window.FacilityDatatypeCleanup = (function() { V.clinicInflateBelly = Math.clamp(+V.clinicInflateBelly, 0, 1) || 0; V.clinicSpeedGestation = Math.clamp(+V.clinicSpeedGestation, 0, 1) || 0; /* nurse */ - V.Nurse = V.slaves.find(function(s) { return s.assignment === "be the Nurse"; }) || 0; + V.Nurse = V.slaves.find(function(s) { + return s.assignment === "be the Nurse"; + }) || 0; } function ArcadeDatatypeCleanup() { @@ -1614,7 +1631,9 @@ window.FacilityDatatypeCleanup = (function() { V.cellblock = Math.max(+V.cellblock, 0) || 0; V.cellblockUpgrade = Math.clamp(+V.cellblockUpgrade, 0, 1) || 0; /* wardeness */ - V.Wardeness = V.slaves.find(function(s) { return s.assignment === "be the Wardeness"; }) || 0; + V.Wardeness = V.slaves.find(function(s) { + return s.assignment === "be the Wardeness"; + }) || 0; V.cellblockWardenCumsInside = Math.clamp(+V.cellblockWardenCumsInside, 0, 1) || 0; } @@ -1628,18 +1647,25 @@ window.FacilityDatatypeCleanup = (function() { V.masterSuitePregnancyFertilityDrugs = Math.clamp(+V.masterSuitePregnancyFertilityDrugs, 0, 1) || 0; V.masterSuiteHyperPregnancy = Math.clamp(+V.masterSuiteHyperPregnancy, 0, 1) || 0; /* concubine */ - V.Concubine = V.slaves.find(function(s) { return s.assignment === "be your Concubine"; }) || 0; + V.Concubine = V.slaves.find(function(s) { + return s.assignment === "be your Concubine"; + }) || 0; } - function HeadGirlSuiteDatatypeCleanup(){ + function HeadGirlSuiteDatatypeCleanup() { /* headgirl */ - V.HeadGirl = V.slaves.find(function(s) { return s.assignment === "be your Head Girl"; }) || 0; + V.HeadGirl = V.slaves.find(function(s) { + return s.assignment === "be your Head Girl"; + }) || 0; V.HGSuiteEquality = Math.clamp(+V.HGSuiteEquality, 0, 1) || 0; - if (V.HGSuiteSurgery !== 0) + if (V.HGSuiteSurgery !== 0) { V.HGSuiteSurgery = 1; - if (V.HGSuiteDrugs !== 0) + } + if (V.HGSuiteDrugs !== 0) { V.HGSuiteDrugs = 1; - if (V.HGSuiteHormones !== 0) + } + if (V.HGSuiteHormones !== 0) { V.HGSuiteHormones = 1; + } } })(); diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js index c20ae53c1b3d02c5d99415145b59bd2c475b88e8..1c54d146f835e9493ef6988269a7809f4fa5bd67 100644 --- a/src/js/eventSelectionJS.js +++ b/src/js/eventSelectionJS.js @@ -1,11 +1,9 @@ -window.generateRandomEventPoolStandard = function (eventSlave) { - +window.generateRandomEventPoolStandard = function(eventSlave) { /* STANDARD EVENTS */ if (eventSlave.fetish !== "mindbroken") { if (canWalk(eventSlave)) { if (canTalk(eventSlave)) { - if (State.variables.RECockmilkInterceptionIDs.length > 1 || (State.variables.RECockmilkInterceptionIDs.length === 1 && eventSlave.ID !== State.variables.RECockmilkInterceptionIDs[0])) { if (eventSlave.devotion > 20) { if (eventSlave.dietCum > 0 || (eventSlave.fetishKnown && eventSlave.fetish === "cumslut")) { @@ -227,7 +225,9 @@ window.generateRandomEventPoolStandard = function (eventSlave) { } if (eventSlave.relationship > 3) { - var relationshipSlave = State.variables.slaves.find(function (s) { return s.ID === eventSlave.relationshipTarget; }); + let relationshipSlave = State.variables.slaves.find(function(s) { + return s.ID === eventSlave.relationshipTarget; + }); if (relationshipSlave.devotion > 20) { if (canWalk(relationshipSlave)) { if (canTalk(relationshipSlave)) { @@ -290,7 +290,7 @@ window.generateRandomEventPoolStandard = function (eventSlave) { if (eventSlave.devotion > 50) { if (eventSlave.trust > 50) { - var giver = 0; + let giver = 0; if (State.variables.HeadGirl === 0) { giver = 1; } else if (State.variables.HeadGirl.ID !== eventSlave.ID) { @@ -813,7 +813,6 @@ window.generateRandomEventPoolStandard = function (eventSlave) { } } } - } /* closes mute exempt */ if (eventSlave.devotion > 20) { @@ -1335,11 +1334,9 @@ window.generateRandomEventPoolStandard = function (eventSlave) { } } } - } /* closes amp/crawling exempt */ if (canTalk(eventSlave)) { - if (eventSlave.speechRules !== "restrictive") { if (eventSlave.boobsImplant > 400) { if (eventSlave.lipsImplant >= 30) { @@ -1478,7 +1475,6 @@ window.generateRandomEventPoolStandard = function (eventSlave) { } } } - } /* closes mute exempt */ if (State.variables.cockFeeder === 0) { @@ -1775,7 +1771,6 @@ window.generateRandomEventPoolStandard = function (eventSlave) { if (eventSlave.prestige === 0) { if (eventSlave.devotion > 50) { if (eventSlave.trust > 50) { - if (eventSlave.entertainSkill >= 100) { if (eventSlave.assignment === "serve the public") { State.variables.events.push("RE legendary entertainer"); @@ -1821,7 +1816,6 @@ window.generateRandomEventPoolStandard = function (eventSlave) { State.variables.events.push("RE former abolitionist"); } } - } } } @@ -1829,7 +1823,7 @@ window.generateRandomEventPoolStandard = function (eventSlave) { /* NICKNAME EVENTS */ if (State.variables.nicknamesAllowed === 1) { - var toSearch = eventSlave.slaveName.toLowerCase(); + let toSearch = eventSlave.slaveName.toLowerCase(); if (toSearch.indexOf("'") === -1) { if (State.variables.week - eventSlave.weekAcquired >= 4) { State.variables.events.push("RE nickname"); @@ -1837,7 +1831,6 @@ window.generateRandomEventPoolStandard = function (eventSlave) { } } /* closes nickname check */ } /* closes no nicknames option */ - } /* closes mindbreak exempt */ if (eventSlave.fetish === "mindbroken") { @@ -1865,18 +1858,15 @@ window.generateRandomEventPoolStandard = function (eventSlave) { } } } - }; /* servants spend a lot of time in the penthouse, so should be eligible for a number (but not all) random events */ -window.generateRandomEventPoolServant = function (eventSlave) { - +window.generateRandomEventPoolServant = function(eventSlave) { /* STANDARD EVENTS */ if (eventSlave.fetish !== "mindbroken") { if (canWalk(eventSlave)) { if (canTalk(eventSlave)) { - if (State.variables.RECockmilkInterceptionIDs.length > 1 || (State.variables.RECockmilkInterceptionIDs.length === 1 && eventSlave.ID !== State.variables.RECockmilkInterceptionIDs[0])) { if (eventSlave.devotion > 20) { if (eventSlave.dietCum > 0 || (eventSlave.fetishKnown && eventSlave.fetish === "cumslut")) { @@ -1962,7 +1952,9 @@ window.generateRandomEventPoolServant = function (eventSlave) { } if (eventSlave.relationship > 3) { - var relationshipSlave = State.variables.slaves.find(function (s) { return s.ID === eventSlave.relationshipTarget; }); + let relationshipSlave = State.variables.slaves.find(function(s) { + return s.ID === eventSlave.relationshipTarget; + }); if (relationshipSlave.devotion > 20) { if (canWalk(relationshipSlave)) { if (canTalk(relationshipSlave)) { @@ -1998,7 +1990,7 @@ window.generateRandomEventPoolServant = function (eventSlave) { if (eventSlave.devotion > 50) { if (eventSlave.trust > 50) { - var giver = 0; + let giver = 0; if (State.variables.HeadGirl === 0) { giver = 1; } else if (State.variables.HeadGirl.ID !== eventSlave.ID) { @@ -2307,7 +2299,6 @@ window.generateRandomEventPoolServant = function (eventSlave) { } } } - } /* closes mute exempt */ if (eventSlave.devotion > 20) { @@ -2675,11 +2666,9 @@ window.generateRandomEventPoolServant = function (eventSlave) { } } } - } /* closes amp/crawling exempt */ if (canTalk(eventSlave)) { - if (eventSlave.speechRules !== "restrictive") { if (eventSlave.boobsImplant > 400) { if (eventSlave.lipsImplant >= 30) { @@ -2731,7 +2720,6 @@ window.generateRandomEventPoolServant = function (eventSlave) { } } } - } /* closes mute exempt */ if (State.variables.cockFeeder === 0) { @@ -2946,7 +2934,7 @@ window.generateRandomEventPoolServant = function (eventSlave) { /* NICKNAME EVENTS */ if (State.variables.nicknamesAllowed === 1) { - var toSearch = eventSlave.slaveName.toLowerCase(); + let toSearch = eventSlave.slaveName.toLowerCase(); if (toSearch.indexOf("'") === -1) { if (State.variables.week - eventSlave.weekAcquired >= 4) { State.variables.events.push("RE nickname"); @@ -2954,7 +2942,6 @@ window.generateRandomEventPoolServant = function (eventSlave) { } } /* closes nickname check */ } /* closes no nicknames option */ - } /* closes mindbreak exempt */ if (eventSlave.fetish === "mindbroken") { @@ -2971,14 +2958,12 @@ window.generateRandomEventPoolServant = function (eventSlave) { } } } - }; -window.populateEventArray = function (RESS = State.variables.RESSevent.length, RESSTR = State.variables.RESSTRevent.length, RETS = State.variables.RETSevent.length, RECI = State.variables.RECIevent.length) { - +window.populateEventArray = function(RESS = State.variables.RESSevent.length, RESSTR = State.variables.RESSTRevent.length, RETS = State.variables.RETSevent.length, RECI = State.variables.RECIevent.length) { /* EVENT RANDOMIZATION */ - var events = State.variables.events; - var i = 0; + let events = State.variables.events; + let i = 0; for (i = 0; i < RESS; i++) { events.push("RESS");