From a35cacdd25b8031d351330330d5aa47a9160a863 Mon Sep 17 00:00:00 2001 From: Pregmodder <pregmodder@gmail.com> Date: Sat, 9 Mar 2019 15:50:32 -0500 Subject: [PATCH] heterochromia active --- devNotes/VersionChangeLog-Premod+LoliMod.txt | 5 +- src/js/generateGenetics.js | 70 ++++++++++++++++++++ src/js/generateNewSlaveJS.js | 45 +++++++++++++ 3 files changed, 119 insertions(+), 1 deletion(-) diff --git a/devNotes/VersionChangeLog-Premod+LoliMod.txt b/devNotes/VersionChangeLog-Premod+LoliMod.txt index 9d26840b575..9974b1632d6 100644 --- a/devNotes/VersionChangeLog-Premod+LoliMod.txt +++ b/devNotes/VersionChangeLog-Premod+LoliMod.txt @@ -9,13 +9,16 @@ Pregmod -ear shaping surgeries -horn implant surgeries -tail socket cybernetics port and tails + -taste and smell senses -fertility diet no longer blocked by chastity -RA can now apply contraceptives to postpartum slaves -RA can now manage basic abortions -added abortion tracking tattoos -added bulk incubator retrieval - -added "albinism", "pFace" and "uFace" genetic traits + -added "albinism", "heterochromia", "pFace" and "uFace" genetic traits -added sexy Santa outfit + -watersports is now toggleable + -added option for force surname-name on all slaves -fixes -various code cleaning diff --git a/src/js/generateGenetics.js b/src/js/generateGenetics.js index 0c25df36532..59e57265daa 100644 --- a/src/js/generateGenetics.js +++ b/src/js/generateGenetics.js @@ -69,6 +69,9 @@ window.generateGenetics = (function() { genes.face = setFace(father, mother, activeMother, actor2, genes.geneticQuirks); genes.faceShape = setFaceShape(father, mother); genes.eyeColor = setEyeColor(father, mother, actor2); + if (genes.geneticQuirks.heterochromia === 2) { + genes.geneticQuirks.heterochromia = setHeterochromaticEyeColor(father, mother, actor2); + } genes.hColor = setHColor(father, mother, actor2); genes.underArmHStyle = setUnderArmHStyle(father, mother); genes.pubicHStyle = setPubicHStyle(father, mother); @@ -277,6 +280,42 @@ window.generateGenetics = (function() { return eyeColor; } + function setHeterochromaticEyeColor(father, mother, actor2) { + let hEyeColor; + let eyeColorArray = []; + if (father !== 0) { + eyeColorArray.push(mother.origEye); + eyeColorArray.push(father.origEye); + if (father.geneticQuirks.heterochromia !== 0 && father.geneticQuirks.heterochromia !== 1) { + eyeColorArray.push(father.geneticQuirks.heterochromia); + } + } else if (actor2 === -2 || actor2 === 0 || actor2 === -5) { + eyeColorArray.push(mother.origEye); + eyeColorArray.push("brown"); + eyeColorArray.push("brown"); + eyeColorArray.push("blue"); + eyeColorArray.push("green"); + eyeColorArray.push("green"); + eyeColorArray.push("hazel"); + } else { + eyeColorArray.push(mother.origEye); + } + if (mother.geneticQuirks.heterochromia !== 0 && mother.geneticQuirks.heterochromia !== 1) { + eyeColorArray.push(mother.geneticQuirks.heterochromia); + } + //just in case something wrong gets through + switch (hEyeColor) { + case "blind blue": + hEyeColor = "deep blue"; + break; + case "milky white": + case "implant": + hEyeColor = jsEither(["blue", "green", "brown", "hazel", "light blue", "light green", "dark green", "dark blue"]); + break; + } + return jsEither(hEyeColor); + } + // hColor function setHColor(father, mother, actor2) { let hairColor; @@ -681,6 +720,37 @@ window.generateGenetics = (function() { } } } + + //heterochromia + if (father !== 0) { + if (mother.geneticQuirks.heterochromia === 2 && father.geneticQuirks.heterochromia === 2) { + if (jsRandom(1, 4) === 1) { + quirks.heterochromia = 2; + } else { + quirks.heterochromia = 1; + } + } else if (mother.geneticQuirks.heterochromia === 1 + father.geneticQuirks.heterochromia >= 3) { + chance = jsRandom(1, 4); + if (chance === 1) { + quirks.heterochromia = 2; + } else if (chance !== 4) { + quirks.heterochromia = 1; + } + } else if (mother.geneticQuirks.heterochromia === 1 && father.geneticQuirks.heterochromia === 1) { + if (jsRandom(1, 4) === 1) { + quirks.heterochromia = 2; + } + } + } else if (mother.geneticQuirks.heterochromia >= 1) { + if (jsRandom(0, 40000) >= 39500) { + chance = jsRandom(1, 4); + if (chance === 1) { + quirks.heterochromia = 2; + } else if (chance !== 4) { + quirks.heterochromia = 1; + } + } + } return clone(quirks); } diff --git a/src/js/generateNewSlaveJS.js b/src/js/generateNewSlaveJS.js index 27f992102a6..f51d123a66b 100644 --- a/src/js/generateNewSlaveJS.js +++ b/src/js/generateNewSlaveJS.js @@ -1092,6 +1092,12 @@ window.GenerateNewSlave = (function(){ } else if (chance >= 19500) { slave.geneticQuirks.albinism = 1; } + chance = jsRandom(1,20000); + if (chance == 10001) { + slave.geneticQuirks.heterochromia = 2; + } else if (chance >= 19750) { + slave.geneticQuirks.heterochromia = 1; + } } function generateXYGeneticQuirks() { @@ -1114,6 +1120,12 @@ window.GenerateNewSlave = (function(){ } else if (chance >= 19500) { slave.geneticQuirks.albinism = 1; } + chance = jsRandom(1,20000); + if (chance == 10001) { + slave.geneticQuirks.heterochromia = 2; + } else if (chance >= 19750) { + slave.geneticQuirks.heterochromia = 1; + } } function generateAge() { @@ -1240,28 +1252,46 @@ window.GenerateNewSlave = (function(){ slave.skin = jsEither(["black", "brown", "dark brown"]); slave.hColor = jsEither(["black", "black", "black", "brown"]); slave.hStyle = jsEither(["crinkled", "neat"]); + if (slave.geneticQuirks.heterochromia == 2) { + slave.geneticQuirks.heterochromia = "brown"; + } break; case "white": slave.lips = jsRandom(5,25); if (slave.nationality === "German") { slave.skin = jsEither(["fair", "light", "pale"]); slave.eyeColor = jsEither(["blue", "blue", "blue", "brown", "green"]); + if (slave.geneticQuirks.heterochromia == 2) { + slave.geneticQuirks.heterochromia = jsEither(["blue", "blue", "blue", "brown", "green"]); + } slave.hColor = jsEither(["black", "blonde", "blonde", "blonde", "brown", "red"]); } else if (slave.nationality === "Icelandic") { slave.skin = jsEither(["fair", "light", "pale", "pale"]); slave.eyeColor = jsEither(["blue", "blue", "blue", "brown", "green"]); + if (slave.geneticQuirks.heterochromia == 2) { + slave.geneticQuirks.heterochromia = jsEither(["blue", "blue", "blue", "brown", "green"]); + } slave.hColor = jsEither(["black", "blonde", "blonde", "blonde", "brown", "red"]); } else if (slave.nationality === "Irish") { slave.skin = jsEither(["fair", "light", "pale", "pale"]); slave.eyeColor = jsEither(["blue", "brown", "green", "green", "green"]); + if (slave.geneticQuirks.heterochromia == 2) { + slave.geneticQuirks.heterochromia = jsEither(["blue", "brown", "green", "green", "green"]); + } slave.hColor = jsEither(["black", "blonde", "brown", "red", "red", "red"]); } else if (slave.nationality === "Scottish") { slave.skin = jsEither(["fair", "fair", "light", "pale"]); slave.eyeColor = jsEither(["blue", "brown", "brown", "green", "green", "green"]); + if (slave.geneticQuirks.heterochromia == 2) { + slave.geneticQuirks.heterochromia = jsEither(["blue", "brown", "brown", "green", "green", "green"]); + } slave.hColor = jsEither(["black", "black", "blonde", "red", "red", "red", "brown"]); } else { slave.skin = jsEither(["fair", "light", "pale"]); slave.eyeColor = jsEither(["blue", "brown", "green"]); + if (slave.geneticQuirks.heterochromia == 2) { + slave.geneticQuirks.heterochromia = jsEither(["blue", "brown", "green"]); + } slave.hColor = jsEither(["black", "blonde", "brown", "red"]); } slave.hStyle = "neat"; @@ -1270,6 +1300,9 @@ window.GenerateNewSlave = (function(){ slave.lips = jsRandom(5,25); slave.skin = jsEither(["brown", "dark brown", "dark olive", "light olive", "tanned"]); slave.hColor = jsEither(["black", "brown"]); + if (slave.geneticQuirks.heterochromia == 2) { + slave.geneticQuirks.heterochromia = jsEither(["blue", "brown", "green"]); + } slave.hStyle = "neat"; break; case "indo-aryan": @@ -1280,12 +1313,18 @@ window.GenerateNewSlave = (function(){ slave.skin = jsEither(["dark", "light"]); slave.hColor = "black"; slave.hStyle = "neat"; + if (slave.geneticQuirks.heterochromia == 2) { + slave.geneticQuirks.heterochromia = "brown"; + } break; case "asian": slave.lips = jsRandom(5,25); slave.skin = jsEither(["dark olive", "light olive", "light"]); slave.hColor = "black"; slave.hStyle = "neat"; + if (slave.geneticQuirks.heterochromia == 2) { + slave.geneticQuirks.heterochromia = jsEither(["blue", "brown", "green"]); + } break; case "middle eastern": case "semitic": @@ -1294,12 +1333,18 @@ window.GenerateNewSlave = (function(){ slave.skin = jsEither(["fair", "light olive", "light", "tanned"]); slave.hColor = "black"; slave.hStyle = "neat"; + if (slave.geneticQuirks.heterochromia == 2) { + slave.geneticQuirks.heterochromia = jsEither(["blue", "brown", "green"]); + } break; default: slave.lips = jsRandom(5,25); slave.skin = jsEither(["dark", "light", "pale"]); slave.hColor = jsEither(["black", "black", "black", "black", "blonde", "brown", "brown", "red"]); slave.hStyle = "neat"; + if (slave.geneticQuirks.heterochromia == 2) { + slave.geneticQuirks.heterochromia = jsEither(["blue", "brown", "green"]); + } } if (slave.skin === "pale" || slave.skin === "fair") { if (jsRandom(1,4) === 1) { -- GitLab