diff --git a/js/003-data/gameVariableData.js b/js/003-data/gameVariableData.js index f0bbc2ac969e71e5f7947ae9e62127baccf5707f..a69dee57996a1f9b5a7066718ba0464ef21f3e5b 100644 --- a/js/003-data/gameVariableData.js +++ b/js/003-data/gameVariableData.js @@ -770,7 +770,7 @@ App.Data.resetOnNGPlus = { nurseryNameCaps: "The Nursery", reservedChildrenNursery: 0, cribs: [], /* array of children in the nursery */ - cribsFreed: [], /* array of children that have been freed */ + cribsIndices: {}, sortNurseryList: "Unsorted", targetAgeNursery: 18, diff --git a/src/data/backwardsCompatibility/backwardsCompatibility.js b/src/data/backwardsCompatibility/backwardsCompatibility.js index 3eb0251be825d75d3e08964f423acf58b7abff69..e7b0ab807a1398299258db7ade0a2c0953e03c62 100644 --- a/src/data/backwardsCompatibility/backwardsCompatibility.js +++ b/src/data/backwardsCompatibility/backwardsCompatibility.js @@ -1232,19 +1232,16 @@ App.Update.slaveRecords = function(node) { nurseryDiv.append(`Checking and fixing records for nursery cribs... `); V.cribs.forEach((child) => { if (child.actualAge < 3) { + // infants are not slaves, they need their own update code (but there isn't any yet) + // note that some infants have been *converted into* corrupted slaves by bad old BCs...no attempt is made to fix them here App.Facilities.Nursery.InfantDatatypeCleanup(child); } else { + App.Update.Slave(slave); App.Entity.Utils.SlaveDataSchemeCleanup(child, true); App.Facilities.Nursery.ChildDatatypeCleanup(child); } }); V.cribsIndices = App.Facilities.Nursery.cribsToIndices(); - if (V.nurseryNannies > 0) { - for (let bci = 0; bci < V.cribs.length; bci++) { - App.Update.Slave(V.cribs[bci]); - // let _nurseryChild = V.cribs[bci]; TODO: on importing this to JS, what is this even supposed to do? - } - } nurseryDiv.append(`Done!`); } diff --git a/src/descriptions/familySummaries.js b/src/descriptions/familySummaries.js index 7aa316de819147d93b2276476471889d3846232d..6b82150d8d88a0465cb8679dedb6faa3c8e2789d 100644 --- a/src/descriptions/familySummaries.js +++ b/src/descriptions/familySummaries.js @@ -467,7 +467,7 @@ App.Desc.family = (function() { } } - if (slave.clone !== 0) { + if (slave.clone) { r.push(`${He} is`); if (slave.cloneID === -1) { r.push(`your clone.`); diff --git a/src/facilities/nursery/nurseryDatatypeCleanup.js b/src/facilities/nursery/nurseryDatatypeCleanup.js index c062138b13752dcb5b91d97b79a0931ef0cf3ee1..de65be9984e94e87339540509349f87e52918b76 100644 --- a/src/facilities/nursery/nurseryDatatypeCleanup.js +++ b/src/facilities/nursery/nurseryDatatypeCleanup.js @@ -531,16 +531,6 @@ App.Facilities.Nursery.InfantDatatypeCleanup = function(child) { if (typeof child.skin !== "string") { child.skin = "light"; } - if (typeof child.health === "number") { - const condition = child.health; - child.health = {}; - child.health.condition = condition; - } - child.health.condition = Math.clamp(+child.health.condition, -100, 100) || 0; - child.health.shortDamage = Math.max(+child.health.shortDamage, 0) || 0; - child.health.longDamage = Math.max(+child.health.longDamage, 0) || 0; - child.health.illness = Math.max(+child.health.illness, 0) || 0; - child.health.tired = Math.clamp(+child.health.tired, 0, 100) || 0; child.weight = Math.clamp(+child.weight, -100, 200) || 0; } diff --git a/src/facilities/nursery/nurseryWidgets.js b/src/facilities/nursery/nurseryWidgets.js index b78a8b3e152a9b4ec5e09c03eb1ae709dcd68620..f35053ae8066f0cc37922494f25b409bc1fece5a 100644 --- a/src/facilities/nursery/nurseryWidgets.js +++ b/src/facilities/nursery/nurseryWidgets.js @@ -65,12 +65,10 @@ App.Facilities.Nursery.InfantSummary = function(child) { if (abbreviate.physicals === 1) { shortAge(child); shortFace(child); - shortEyes(child); r += `</span> `; } else if (abbreviate.physicals === 2) { longAge(child); longFace(child); - longEyes(child); r += `</span> `; } r += `<br>`; @@ -116,7 +114,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } // /** TODO: add health to infants - // * @param {App.Entity.SlaveState} child + // * @param {App.Entity.InfantState} child // */ // function shortHealth(child) { // if (child.health.condition < -20) { @@ -130,7 +128,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { // } // /** - // * @param {App.Entity.SlaveState} child + // * @param {App.Entity.InfantState} child // */ // function longHealth(child) { // if (child.health.condition < -90) { @@ -152,7 +150,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { // } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function shortRace(child) { switch (child.race) { @@ -199,7 +197,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function longRace(child) { switch (child.race) { @@ -246,7 +244,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function shortNationality(child) { r += `<span class="tan">`; @@ -923,7 +921,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function longNationality(child) { r += `<span class="tan">`; @@ -961,7 +959,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function shortSkin(child) { r += `<span class="pink">`; @@ -1024,7 +1022,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function shortAge(child) { r += `<span class="pink">`; @@ -1046,7 +1044,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function shortFace(child) { if (child.face < -95) { @@ -1067,18 +1065,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child - */ - function shortEyes(child) { - if (!canSee(slave)) { - r += `<span class="red">Blind</span> `; - } else if (!canSeePerfectly(slave)) { - r += `<span class="yellow">Sight-</span> `; - } - } - - /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function longAge(child) { r += `<span class="pink">`; @@ -1105,7 +1092,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function longFace(child) { r += `Likely to have a `; @@ -1128,18 +1115,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child - */ - function longEyes(child) { - if (!canSee(child)) { - r += `<span class="red">Blind.</span> `; - } else if (!canSeePerfectly(child)) { - r += `<span class="yellow">Nearsighted.</span> `; - } - } - - /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function shortIntelligence(child) { let intelligence = child.intelligence; @@ -1202,7 +1178,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function shortPrestige(child) { if (child.prestige > 0) { @@ -1219,7 +1195,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function shortPornPrestige(child) { if (child.pornPrestige > 0) { @@ -1236,7 +1212,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function longIntelligence(child) { let intelligence = child.intelligence; @@ -1261,7 +1237,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function longPrestige(child) { if (child.prestige > 0) { @@ -1278,7 +1254,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function longPornPrestige(child) { if (child.pornPrestige > 0) { @@ -1295,7 +1271,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function shortBehaviorFlaw(child) { r += `<span class="red">`; @@ -1335,7 +1311,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function shortSexFlaw(child) { switch (child.sexualFlaw) { @@ -1400,7 +1376,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function longBehaviorFlaw(child) { r += `<span class="red">`; @@ -1440,7 +1416,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function longSexFlaw(child) { switch (child.sexualFlaw) { @@ -1505,7 +1481,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function shortExtendedFamily(child) { let handled = 0; @@ -1618,7 +1594,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function shortRival(child) { if (child.rivalry !== 0) { @@ -1641,7 +1617,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function longExtendedFamily(child) { let handled = 0; @@ -1769,7 +1745,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function longRival(child) { if (child.rivalry !== 0) { @@ -1791,7 +1767,7 @@ App.Facilities.Nursery.InfantSummary = function(child) { } /** - * @param {App.Entity.SlaveState} child + * @param {App.Entity.InfantState} child */ function origins(child) { r += `<br> `; @@ -14783,7 +14759,6 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) { child.eyebrowFullness = "natural", child.eyebrowHStyle = "natural", child.eyebrowPiercing = 0, - child.eye = new App.Entity.EyeState(), child.eyewear = "none", child.faceImplant = 0, child.fertKnown = 1, @@ -14863,7 +14838,7 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) { child.onDiet = 0, child.origRace = child.race, child.eye = new App.Entity.EyeState(), - child.eye.orig = child.eyeColor, + child.eye.origColor = child.eyeColor, child.origHColor = child.hColor, child.origSkin = child.skin, child.ovaries = child.genes === "XX" ? 1 : 0, @@ -14975,6 +14950,7 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) { child.weight = jsRandom(-10, 10), child.womb = [], child.wombImplant = "none"; + resetEyeColor(child, "both"); generatePronouns(child); return child; @@ -15226,11 +15202,10 @@ App.Facilities.Nursery.nameChild = function nameChild(child) { }; /** - * Creates a new child object - * @param {App.Entity.ChildState} child + * Adds an infant to a the cribs + * @param {App.Entity.InfantState} child */ App.Facilities.Nursery.newChild = function newChild(child) { - child.ID = generateSlaveID(); child.actualAge = 0; @@ -15240,9 +15215,6 @@ App.Facilities.Nursery.newChild = function newChild(child) { child.origRace = child.race; } - if (child.override_Eye_Color !== 1) { - resetEyeColor(child, "both"); - } if (child.override_H_Color !== 1) { child.hColor = getGeneticHairColor(child); } @@ -15289,6 +15261,7 @@ App.Facilities.Nursery.newChild = function newChild(child) { child.targetLocation = "slavery"; child.growTime = V.targetAgeNursery * 52; V.cribs.push(child); + V.cribsIndices = App.Facilities.Nursery.cribsToIndices(); V.nurseryBabies++; }; diff --git a/src/facilities/servantsQuarters/servantsQuartersFramework.js b/src/facilities/servantsQuarters/servantsQuartersFramework.js index dd92499b3cb9023ac13326c32af9b247fab61c1d..2e6713317dcee7ff08e6f70487d3ec55fe96b1ac 100644 --- a/src/facilities/servantsQuarters/servantsQuartersFramework.js +++ b/src/facilities/servantsQuarters/servantsQuartersFramework.js @@ -44,7 +44,7 @@ App.Entity.Facilities.ServantsQuartersServantJob = class extends App.Entity.Faci if (!App.Entity.Facilities.Job._isBrokenEnough(slave, -20, -50, 20, -21)) { r.push(App.Entity.Facilities.Job._stdBreakageMessage(slave)); } - if (!window.canWalk(slave)) { + if (!canWalk(slave)) { r.push(`${slave.slaveName} can't walk and would be unable to properly clean.`); } if (!canSee(slave)) { diff --git a/src/js/generateGenetics.js b/src/js/generateGenetics.js index 3cd4fa3595c93a9f97c88621a7de6be8886c404b..4b4ff267077d9ea42444463a99ce71d5324d71d5 100644 --- a/src/js/generateGenetics.js +++ b/src/js/generateGenetics.js @@ -1060,6 +1060,7 @@ globalThis.generateGenetics = (function() { /** * @param {App.Entity.SlaveState} mother + * @returns {App.Entity.SlaveState|App.Entity.InfantState} */ globalThis.generateChild = function(mother, ova, destination) { let genes = ova.genetics; // maybe just argument this? We'll see. @@ -1189,11 +1190,10 @@ globalThis.generateChild = function(mother, ova, destination) { child.albinismOverride = makeAlbinismOverride(child.race); } child.origSkin = genes.skin; - child.eye.origColor = genes.eyeColor; + child.eyeColor = genes.eyeColor; child.origHColor = genes.hColor; child.skin = getGeneticSkinColor(child); child.hColor = getGeneticHairColor(child); - resetEyeColor(child, "both"); child.pubicHColor = child.hColor; child.underArmHColor = child.hColor; child.eyebrowHColor = child.hColor;