diff --git a/src/js/generateGenetics.js b/src/js/generateGenetics.js index 7e4993b7b1fe3c00d3987e9fe60597800da01513..548d119fb77dd6a6e779fdefc0974dda29ee7e32 100644 --- a/src/js/generateGenetics.js +++ b/src/js/generateGenetics.js @@ -12,8 +12,14 @@ window.generateGenetics = (function() { // intelligence and face parameters are the same so we can use the same distribution for both values // clamping makes edge values (-100, 100) more likely; this is expected behavior // please see https://gitgud.io/pregmodfan/fc-pregmod/issues/852 - const fuzzy = (a, b) => Math.clamp(normalRandInt((a+b)/2, 20), -100, 100); + const fuzzy = (a, b) => Math.clamp(normalRandInt((a + b) / 2, 20), -100, 100); + /** + * @param {App.Entity.SlaveState} actor1 + * @param {number} actor2 Slave ID of actor 2 + * @param {number} x + * @returns + */ function generateGenetics(actor1, actor2, x) { genes = { gender: "XX", @@ -38,7 +44,8 @@ window.generateGenetics = (function() { underArmHStyle: "bushy", clone: 0, cloneID: 0, - geneticQuirks: 0 + geneticQuirks: {}, + fetish: "none" }; if (actor1.ID > 0) { mother = V.genePool.find(s => s.ID === actor1.ID); @@ -658,7 +665,13 @@ window.generateGenetics = (function() { return shape; } - // genetic quirks + /** + * Genetic quirks + * @param {App.Entity.SlaveState|number} father + * @param {App.Entity.SlaveState} mother + * @param {string} sex + * @returns {Object} + */ function setGeneticQuirks(father, mother, sex) { let quirks = { macromastia: 0, @@ -852,7 +865,7 @@ window.generateGenetics = (function() { chance = jsRandom(1, 16); if (chance <= genetarget) { quirks.pFace = 2; - } else if (chance <= 3*genetarget) { + } else if (chance <= 3 * genetarget) { quirks.pFace = 1; } } @@ -866,7 +879,7 @@ window.generateGenetics = (function() { chance = jsRandom(1, 16); if (chance <= genetarget) { quirks.uFace = 2; - } else if (chance <= 3*genetarget) { + } else if (chance <= 3 * genetarget) { quirks.uFace = 1; } } @@ -880,7 +893,7 @@ window.generateGenetics = (function() { chance = jsRandom(1, 16); if (chance <= genetarget) { quirks.gigantism = 2; - } else if (chance <= 3*genetarget) { + } else if (chance <= 3 * genetarget) { quirks.gigantism = 1; } } @@ -894,7 +907,7 @@ window.generateGenetics = (function() { chance = jsRandom(1, 16); if (chance <= genetarget) { quirks.dwarfism = 2; - } else if (chance <= 3*genetarget) { + } else if (chance <= 3 * genetarget) { quirks.dwarfism = 1; } } @@ -908,7 +921,7 @@ window.generateGenetics = (function() { chance = jsRandom(1, 16); if (chance <= genetarget) { quirks.albinism = 2; - } else if (chance <= 3*genetarget) { + } else if (chance <= 3 * genetarget) { quirks.albinism = 1; } } @@ -922,7 +935,7 @@ window.generateGenetics = (function() { chance = jsRandom(1, 16); if (chance <= genetarget) { quirks.heterochromia = 2; - } else if (chance <= 3*genetarget) { + } else if (chance <= 3 * genetarget) { quirks.heterochromia = 1; } } @@ -936,7 +949,7 @@ window.generateGenetics = (function() { chance = jsRandom(1, 16); if (chance <= genetarget) { quirks.rearLipedema = 2; - } else if (chance <= 3*genetarget) { + } else if (chance <= 3 * genetarget) { quirks.rearLipedema = 1; } } @@ -950,7 +963,7 @@ window.generateGenetics = (function() { chance = jsRandom(1, 16); if (chance <= genetarget) { quirks.gigantomastia = 2; - } else if (chance <= 3*genetarget) { + } else if (chance <= 3 * genetarget) { quirks.gigantomastia = 1; } } @@ -964,7 +977,7 @@ window.generateGenetics = (function() { chance = jsRandom(1, 16); if (chance <= genetarget) { quirks.macromastia = 2; - } else if (chance <= 3*genetarget) { + } else if (chance <= 3 * genetarget) { quirks.macromastia = 1; } } @@ -978,7 +991,7 @@ window.generateGenetics = (function() { chance = jsRandom(1, 16); if (chance <= genetarget) { quirks.mGain = 2; - } else if (chance <= 3*genetarget) { + } else if (chance <= 3 * genetarget) { quirks.mGain = 1; } } @@ -992,7 +1005,7 @@ window.generateGenetics = (function() { chance = jsRandom(1, 16); if (chance <= genetarget) { quirks.mLoss = 2; - } else if (chance <= 3*genetarget) { + } else if (chance <= 3 * genetarget) { quirks.mLoss = 1; } } @@ -1006,7 +1019,7 @@ window.generateGenetics = (function() { chance = jsRandom(1, 16); if (chance <= genetarget) { quirks.wGain = 2; - } else if (chance <= 3*genetarget) { + } else if (chance <= 3 * genetarget) { quirks.wGain = 1; } } @@ -1020,7 +1033,7 @@ window.generateGenetics = (function() { chance = jsRandom(1, 16); if (chance <= genetarget) { quirks.wLoss = 2; - } else if (chance <= 3*genetarget) { + } else if (chance <= 3 * genetarget) { quirks.wLoss = 1; } } @@ -1034,7 +1047,7 @@ window.generateGenetics = (function() { chance = jsRandom(1, 16); if (chance <= genetarget) { quirks.androgyny = 2; - } else if (chance <= 3*genetarget) { + } else if (chance <= 3 * genetarget) { quirks.androgyny = 1; } } @@ -1045,6 +1058,9 @@ window.generateGenetics = (function() { return generateGenetics; })(); +/** + * @param {App.Entity.SlaveState} mother + */ window.generateChild = function(mother, ova, destination) { let genes = ova.genetics; // maybe just argument this? We'll see. let pregUpgrade = V.pregnancyMonitoringUpgrade;