diff --git a/src/endWeek/saServant.js b/src/endWeek/saServant.js index c0b3fd603cb0b36be69697aca288741cd48b5178..00a6a262ebd5c5bd9047a46a583b79ff15e0714a 100644 --- a/src/endWeek/saServant.js +++ b/src/endWeek/saServant.js @@ -3,18 +3,22 @@ * @returns {string} Description of week-end as servant */ window.saServant = function saServant(slave) { + "use strict"; const V = State.variables; - const pronouns = getPronouns(slave); - const he = pronouns.pronoun; - const him = pronouns.object; - const his = pronouns.possessive; - const hers = pronouns.possessivePronoun; - const himself = pronouns.objectReflexive; - const boy = pronouns.noun; - const He = capFirstChar(he); - const His = capFirstChar(his); + let t = ``; + /* eslint-disable */ + let pronouns = getPronouns(slave); + let he = pronouns.pronoun; + let him = pronouns.object; + let his = pronouns.possessive; + let hers = pronouns.possessivePronoun; + let himself = pronouns.objectReflexive; + let boy = pronouns.noun; + let He = capFirstChar(he); + let His = capFirstChar(his); + /* eslint-enable */ - let t = `works as a servant. ${He} performs the lowest jobs in your penthouse, cleaning up after your other slaves, bathing them, helping them dress, and giving them sexual relief.`; + t += `works as a servant. ${He} performs the lowest jobs in your penthouse, cleaning up after your other slaves, bathing them, helping them dress, and giving them sexual relief.`; if (V.servantsQuarters > 0) { if ((V.universalRulesFacilityWork === 1 && slave.assignment === "be a servant" && V.servantsQuartersSpots > 0) || (slave.assignment === "work as a servant")) { diff --git a/src/interaction/main/mainLinks.js b/src/interaction/main/mainLinks.js index 4f151ef91c18089129af161737c2bc9f17dfa389..fe85af3891b225f8b31ef6c530b5aaee687f9813 100644 --- a/src/interaction/main/mainLinks.js +++ b/src/interaction/main/mainLinks.js @@ -1,8 +1,3 @@ -/* eslint-disable no-unused-vars */ -/* eslint-disable no-undef */ - -/** breaks in the last case in switches are not required, but are highly recommended */ - /* OPEN MAIN */ App.UI.View.MainLinks = function () { "use strict"; @@ -12,15 +7,17 @@ App.UI.View.MainLinks = function () { }) : []; let r = ``; if (V.HeadGirl) { - var pronouns = getPronouns(V.HeadGirl), - he = pronouns.pronoun, - him = pronouns.object, - his = pronouns.possessive, - hers = pronouns.possessivePronoun, - himself = pronouns.objectReflexive, - boy = pronouns.noun, - He = capFirstChar(he), - His = capFirstChar(his); + /* eslint-disable */ + var pronouns = getPronouns(V.HeadGirl); + let he = pronouns.pronoun; + let him = pronouns.object; + let his = pronouns.possessive; + let hers = pronouns.possessivePronoun; + let himself = pronouns.objectReflexive; + let boy = pronouns.noun; + let He = capFirstChar(he); + let His = capFirstChar(his); + /* eslint-enable */ } if (V.PCWounded === 1) { diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js index e72f3b1790ea83c4c97de961d8b6504c8f20df8b..1f96f43d1316655be58f070a44b9313803f5b0ba 100644 --- a/src/js/DefaultRules.js +++ b/src/js/DefaultRules.js @@ -11,7 +11,7 @@ window.DefaultRules = (function() { /** * @param {App.Entity.SlaveState} slave - * @returns {string} + * @returns {object} */ function DefaultRules(slave) { if (slave.useRulesAssistant === 0) return r; // exempted @@ -80,7 +80,10 @@ window.DefaultRules = (function() { return r; } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @returns {map} + */ function MergeRules(slave) { // merge all rules applying on a slave into one big rule const rules = V.defaultRules.filter((x) => ruleAppliesP(x.condition, slave)); @@ -88,7 +91,11 @@ window.DefaultRules = (function() { return mergeRules(rules.map((x) => ProcessAssignments(slave, Object.assign({}, x.set)))); } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule // not sure about this + * @returns {object} // not sure about this + */ function ProcessAssignments(slave, rule) { // Before merging rules, we process assignments for each rule separately so we can remove slaves from facilities when they no longer qualify, even if the final "winning" rule assigns them elsewhere // We also ignore inapplicable assignments for the current slave, so we only merge assignments that are valid @@ -304,7 +311,10 @@ window.DefaultRules = (function() { return rule; } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function AssignJobToSlave(slave, rule) { // place slave on assignment defined by the rule if ((rule.setAssignment !== undefined && rule.setAssignment !== "no default setting")) { @@ -361,7 +371,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessClothing(slave, rule) { // apply clothes to slave if ((rule.clothes !== undefined) && (rule.clothes !== "no default setting")) { @@ -379,7 +392,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessCollar(slave, rule) { // apply collar to slave if ((rule.collar !== undefined) && (rule.collar !== "no default setting")) { @@ -407,7 +423,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessEyewear(slave, rule) { // apply glasses, contacts to slave if ((rule.eyewear !== undefined) && (rule.eyewear !== "no default setting")) { @@ -498,7 +517,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessEarwear(slave, rule) { // apply earplugs to slave if ((rule.earwear !== undefined) && (rule.earwear !== "no default setting")) { @@ -558,7 +580,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessDildos(slave, rule) { // apply vaginal dildos to slave if (slave.vagina === 0) { @@ -571,7 +596,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessVVirginDildos(slave, rule) { // apply vaginal dildos to vaginal virgins if ((rule.virginAccessory !== undefined) && (rule.virginAccessory !== "no default setting")) { @@ -629,7 +657,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessAVirginDildos(slave, rule) { // apply vaginal dildos to anal virgins if ((rule.aVirginAccessory !== undefined) && (rule.aVirginAccessory !== "no default setting")) { @@ -687,7 +718,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessNonVirginDildos(slave, rule) { // apply vaginal dildos to non-virgins if ((rule.vaginalAccessory !== undefined) && (rule.vaginalAccessory !== "no default setting")) { @@ -744,7 +778,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessVaginalAttachments(slave, rule) { // apply vaginal accessories to slaves if (slave.vaginalAccessory === "none" && slave.vaginalAttachment === "vibrator") { @@ -783,7 +820,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessDickAccessories(slave, rule) { // apply dick accessories to slave if ((slave.dick > 0)) { @@ -813,7 +853,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessChastity(slave, rule) { // apply chastity to slave if ((rule.chastityVagina !== undefined) && (rule.chastityVagina !== "no default setting")) { @@ -852,7 +895,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessShoes(slave, rule) { // apply shoes to slave if ((rule.shoes !== undefined) && (rule.shoes !== "no default setting")) { @@ -865,7 +911,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessBellyAccessories(slave, rule) { // apply belly accessories to slave if ((rule.bellyAccessory !== undefined) && (rule.bellyAccessory !== "no default setting")) { @@ -885,7 +934,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessLegAccessory(slave, rule) { if (rule.legAccessory !== undefined && rule.legAccessory !== "no default setting" && slave.amp !== 1 && slave.legAccessory !== rule.legAccessory) { slave.legAccessory = rule.legAccessory; @@ -893,7 +945,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessAnalAccessories(slave, rule) { // apply buttplugs and buttplug accessories to slave if (slave.chastityAnus !== 1) { @@ -906,7 +961,10 @@ window.DefaultRules = (function() { ProcessButtplugAttachments(slave, rule); } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessAnalVirginButtplugs(slave, rule) { // apply buttplugs to virgins if ((rule.aVirginButtplug !== undefined) && (rule.aVirginButtplug !== "no default setting")) { @@ -964,7 +1022,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessNonVirginButtplugs(slave, rule) { // apply buttplugs to non-virgins if ((rule.buttplug !== undefined) && (rule.buttplug !== "no default setting")) { @@ -1022,7 +1083,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessButtplugAttachments(slave, rule) { // apply buttplug accessories to slaves if (slave.buttplug === "none" && slave.buttplugAttachment !== "none") { @@ -1043,7 +1107,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessBellyImplant(slave, rule) { // Here is belly implant size control, it's used in Surgery Degradation passage to setup devotion and trust changes. // silent calls to surgery degradation have been replaced with a js function, which is less hacky @@ -1076,7 +1143,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} volume + */ function BellySurgery(slave, volume) { // this is a port of the belly implant portion of surgeryDegradation.tw // that way, we don't have to use ugly hacks @@ -1119,7 +1189,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessContraceptives(slave, rule) { if ((rule.preg !== undefined) && (rule.preg !== "no default setting")) { if (rule.preg === true && slave.preg === 0) { @@ -1132,7 +1205,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessAbortions(slave, rule) { if ((rule.abortion !== undefined) && (rule.abortion !== "no default setting")) { if (rule.abortion === "all") { @@ -1213,7 +1289,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessAssetGrowthDrugs(slave, rule) { // 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"]); @@ -1434,7 +1513,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessOtherDrugs(slave, rule) { // Other Drugs if (slave.indentureRestrictions < 2 && rule.drug !== "no default setting" && slave.drugs !== rule.drug) { @@ -1602,7 +1684,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessEnema(slave, rule) { if ((rule.inflationType !== undefined) && (rule.inflationType !== "no default setting")) { if (slave.inflationType !== rule.inflationType) { @@ -1644,7 +1729,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessDiet(slave, rule) { // Diet Setting if (rule.diet !== undefined && rule.diet !== "no default setting") { @@ -1822,7 +1910,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessCuratives(slave, rule) { if ((rule.curatives !== undefined) && (rule.curatives !== "no default setting")) { if (slave.curatives !== rule.curatives) { @@ -1844,7 +1935,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessAphrodisiacs(slave, rule) { if ((rule.aphrodisiacs !== undefined) && (rule.aphrodisiacs !== "no default setting")) { if (slave.aphrodisiacs !== rule.aphrodisiacs) { @@ -1854,7 +1948,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessPenisHormones(slave, rule) { if ((slave.dick > 0)) { if ((slave.balls === 0)) { @@ -1893,7 +1990,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessFemaleHormones(slave, rule) { if ((slave.vagina > -1) && (slave.dick === 0) && (rule.XX !== undefined) && (rule.XX !== "no default setting")) { if ((slave.hormones !== rule.XX)) { @@ -1909,7 +2009,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessPregnancyDrugs(slave, rule) { if (slave.pregKnown === 1 && rule.pregSpeed !== "no default setting" && (slave.breedingMark !== 1 || V.propOutcome === 0) && slave.indentureRestrictions < 1 && slave.broodmother === 0) { if (rule.pregSpeed === "slow" && slave.preg < slave.pregData.minLiveBirth) { @@ -1936,7 +2039,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessLivingStandard(slave, rule) { if ((rule.livingRules !== undefined) && (rule.livingRules !== "no default setting")) { if (setup.facilityCareers.includes(slave.assignment)) { @@ -1970,7 +2076,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessSpeech(slave, rule) { if ((rule.speechRules !== undefined) && (rule.speechRules !== "no default setting") && (slave.speechRules !== rule.speechRules)) { if (slave.fetish === "mindbroken") { @@ -2001,7 +2110,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessRelationship(slave, rule) { if ((slave.fetish !== "mindbroken")) { if ((rule.relationshipRules !== undefined) && (rule.relationshipRules !== "no default setting")) { @@ -2013,7 +2125,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessRelease(slave, rule) { if ((rule.releaseRules !== undefined) && (rule.releaseRules !== "no default setting")) { let _release = 0; @@ -2036,7 +2151,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessPunishment(slave, rule) { if ((rule.standardPunishment !== undefined) && (rule.standardPunishment !== "no default setting")) { if ((slave.standardPunishment !== rule.standardPunishment)) { @@ -2046,7 +2164,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessReward(slave, rule) { if ((rule.standardReward !== undefined) && (rule.standardReward !== "no default setting")) { if ((slave.standardReward !== rule.standardReward)) { @@ -2056,7 +2177,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessToyHole(slave, rule) { if ((rule.toyHole !== undefined) && (rule.toyHole !== "no default setting")) { if (rule.toyHole === "pussy") { @@ -2090,7 +2214,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessDietCum(slave, rule) { if ((rule.dietCum !== undefined) && (rule.dietCum !== "no default setting")) { if (slave.dietCum !== rule.dietCum) { @@ -2107,7 +2234,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessDietMilk(slave, rule) { if ((rule.dietMilk !== undefined) && (rule.dietMilk !== "no default setting")) { if (slave.dietMilk !== rule.dietMilk) { @@ -2124,7 +2254,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessSolidFood(slave, rule) { if ((rule.onDiet !== undefined) && (rule.onDiet !== "no default setting")) { if ((slave.onDiet !== rule.onDiet)) { @@ -2138,7 +2271,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessTeeth(slave, rule) { if ((rule.teeth !== undefined) && (rule.teeth !== "no default setting")) { if ((rule.teeth === "universal")) { @@ -2180,7 +2316,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessStyle(slave, rule) { if (rule.eyeColor !== undefined && (rule.eyeColor !== "no default setting")) { if ((slave.eyeColor !== rule.eyeColor)) { @@ -2575,7 +2714,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessSmartPiercings(slave, rule) { if ((slave.clitPiercing === 3)) { let _used = 0; @@ -2642,7 +2784,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessTattoos(slave, rule) { if (rule.boobsTat !== undefined && (rule.boobsTat !== "no default setting")) { if ((slave.boobsTat !== rule.boobsTat)) { @@ -2749,7 +2894,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessPornFeedEnabled(slave, rule) { if (rule.pornFeed === undefined || rule.pornFeed === "no default setting") { return; @@ -2776,7 +2924,10 @@ window.DefaultRules = (function() { } } - /** @param {App.Entity.SlaveState} slave */ + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ function ProcessLabel(slave, rule) { if (rule.label !== "no default setting" && !slave.customLabel.includes(`[${rule.label}]`)) { slave.customLabel = `${slave.customLabel }[${ rule.label }]`; diff --git a/src/js/assayJS.js b/src/js/assayJS.js index 402edab333e698101cf1a38f682c8269613fb295..8057ae77c32cb5fce2c7399fcbc3d2a679a38328 100644 --- a/src/js/assayJS.js +++ b/src/js/assayJS.js @@ -2078,10 +2078,9 @@ window.MenialPopCap = function MenialPopCap() { /** * @param {App.Entity.SlaveState} slave * @param {number} amount - window.faceIncrease = * @returns {string} */ -function faceIncrease(slave, amount) { +window.faceIncrease = function faceIncrease(slave, amount) { const pronouns = getPronouns(slave); const his = pronouns.possessive; const His = capFirstChar(his); diff --git a/src/js/extendedFamilyModeJS.js b/src/js/extendedFamilyModeJS.js index 7a27c997341ce6a464d1c064d2ee86ecc40f4bb7..95fb1d68101d3fb985b998d8c51730f6df817589 100644 --- a/src/js/extendedFamilyModeJS.js +++ b/src/js/extendedFamilyModeJS.js @@ -138,7 +138,12 @@ window.areSisters = function(c1, c2) { } } */ -window.areCousins = /** @param {App.Entity.SlaveState} slave1, @param {App.Entity.SlaveState} slave2 */ function (slave1, slave2) { +/** + * @param {App.Entity.SlaveState} slave1 + * @param {App.Entity.SlaveState} slave2 + * @returns {boolean} + */ +window.areCousins = function (slave1, slave2) { if (!State.variables.showDistantRelatives) { return false; } @@ -260,55 +265,91 @@ window.randomRelatedSlave = function (slave, filterFunction) { }); }; -window.randomRelatedAvailableSlave = /** @param {App.Entity.SlaveState} slave */ function (slave) { +/** + * @param {App.Entity.SlaveState} slave + * @returns {object} +*/ +window.randomRelatedAvailableSlave = function (slave) { return randomRelatedSlave(slave, function (s) { return isSlaveAvailable(s); }); }; -window.randomSister = /** @param {App.Entity.SlaveState} slave */ function (slave) { +/** + * @param {App.Entity.SlaveState} slave + * @returns {object} +*/ +window.randomSister = function (slave) { return randomRelatedSlave(slave, function (s) { return areSisters(slave, s); }); }; -window.randomTwinSister = /** @param {App.Entity.SlaveState} slave */ function (slave) { +/** + * @param {App.Entity.SlaveState} slave + * @returns {object} +*/ +window.randomTwinSister = function (slave) { return randomRelatedSlave(slave, function (s) { return areSisters(slave, s) === 1; }); }; -window.randomAvailableSister = /** @param {App.Entity.SlaveState} slave */ function (slave) { +/** + * @param {App.Entity.SlaveState} slave + * @returns {object} +*/ +window.randomAvailableSister = function (slave) { return randomRelatedSlave(slave, function (s) { return isSlaveAvailable(s) && areSisters(slave, s); }); }; -window.randomAvailableTwinSister = /** @param {App.Entity.SlaveState} slave */ function (slave) { +/** + * @param {App.Entity.SlaveState} slave + * @returns {object} +*/ +window.randomAvailableTwinSister = function (slave) { return randomRelatedSlave(slave, function (s) { return isSlaveAvailable(s) && areSisters(slave, s) === 1; }); }; -window.randomDaughter = /** @param {App.Entity.SlaveState} slave */ function (slave) { +/** + * @param {App.Entity.SlaveState} slave + * @returns {object} +*/ +window.randomDaughter = function (slave) { return randomRelatedSlave(slave, function (s) { return s.mother === slave.ID || s.father === slave.ID; }); }; -window.randomAvailableDaughter = /** @param {App.Entity.SlaveState} slave */ function (slave) { +/** + * @param {App.Entity.SlaveState} slave + * @returns {object} +*/ +window.randomAvailableDaughter = function (slave) { return randomRelatedSlave(slave, function (s) { return isSlaveAvailable(s) && (s.mother === slave.ID || s.father === slave.ID); }); }; -window.randomParent = /** @param {App.Entity.SlaveState} slave */ function (slave) { +/** + * @param {App.Entity.SlaveState} slave + * @returns {object} +*/ +window.randomParent = function (slave) { return randomRelatedSlave(slave, function (s) { return s.ID === slave.mother || s.ID === slave.father; }); }; -window.randomAvailableParent = /** @param {App.Entity.SlaveState} slave */ function (slave) { +/** + * @param {App.Entity.SlaveState} slave + * @returns {object} +*/ +window.randomAvailableParent = function (slave) { return randomRelatedSlave(slave, function (s) { return isSlaveAvailable(s) && (s.ID === slave.mother || s.ID === slave.father); }); diff --git a/src/js/food.js b/src/js/food.js index 87f5f7b1f807b13660507288c5c8b77a13b92225..eb25a077860f0e751fc3aabdbf55a37e96ad2add 100644 --- a/src/js/food.js +++ b/src/js/food.js @@ -1,5 +1,7 @@ -/* eslint-disable no-undef */ -/** @param {App.Entity.SlaveState} slave */ +/** + * @param {App.Entity.SlaveState} slave + * @returns {number} + */ window.foodAmount = function(slave) { const V = State.variables; let food = 400; // kg / food produced by base slave / week @@ -8,7 +10,7 @@ window.foodAmount = function(slave) { } else { if (V.Farmer !== 0) { // if a farmer is assigned food *= 1.1; // TODO: expand this to account for farmer XP and skill - if (V.Farmer.skill.farmer >= V.masteredXP) { // if farmer is master + if (V.Farmer.skill.farmer >= V.masteredXP) { // if farmer is master food *= 1.1; } } @@ -55,7 +57,10 @@ window.foodAmount = function(slave) { } }; -/** @param {App.Entity.SlaveState} slave */ +/** + * @param {App.Entity.SlaveState} slave + * @returns {number} + */ window.farmShowsIncome = function(slave) { // TODO: incorporate farmyardRestraints const V = State.variables; @@ -66,7 +71,7 @@ window.farmShowsIncome = function(slave) { } else { if (V.Farmer !== 0) { // farmer is assigned cash *= 1.1; - if (V.Farmer.skill.farmer >= V.masteredXP) { // farmer is master + if (V.Farmer.skill.farmer >= V.masteredXP) { // farmer is master cash *= 1.1; } } diff --git a/src/js/wombJS.js b/src/js/wombJS.js index 19d78e3fa0e7aa9818d833eefae055969bede109..0645ebd13d86a65173bcc3aa1fdf8da6fb85aea4 100644 --- a/src/js/wombJS.js +++ b/src/js/wombJS.js @@ -772,11 +772,11 @@ In summary she carry _wd.litters.length separate sets of children. Her most prog --- */ window.WombGetLittersData = function (actor) { - var data = {}; - var unicLiters = []; // array with realAges of separate litters. - var countLitter = []; - var litterData = []; - var tmp; + let data = {}; + let unicLiters = []; // array with realAges of separate litters. + let countLitter = []; + let litterData = []; + let tmp; // in first place we need to know how many litters here (Assuming that unique litter is have similar .realAge). Also we will know their ages. actor.womb.forEach(function(ft) @@ -787,7 +787,7 @@ window.WombGetLittersData = function (actor) { }); // now we should find and store separate litters data (count of fetuses): - unicLiters.forEach(function(litter, i) + unicLiters.forEach(function(litter, i) // TODO: i is defined but not used { tmp = actor.womb.filter(ft => Math.ceil(ft.realAge) === litter); countLitter.push(tmp.length);