diff --git a/src/events/intro/acquisition.js b/src/events/intro/acquisition.js index 6d9800668b95c7b63f0aae4ea75cefbb57e5b93a..dae2e7c7cb30d218bfd1c9b930cf74657ca832d6 100644 --- a/src/events/intro/acquisition.js +++ b/src/events/intro/acquisition.js @@ -185,17 +185,21 @@ App.Intro.acquisition = function() { } let addFamilyMember = false; let secondMember = baseSlave(); + let slaveDatabaseID = 0; let secondMemberDatabaseID = 0; // We initialize this here so that we use it to set incestuous relationships. + let isSecondMember = false; for (let j = 0; j < heroSlaves.length; j++) { let slave; if (addFamilyMember) { slave = secondMember; + isSecondMember = true; addFamilyMember = false; } else if (valueOwed - valueGiven <= 5000) { break; } else { + isSecondMember = false; const heroSlaveTemplate = heroSlaves[j]; - const slaveDatabaseID = heroSlaveTemplate.ID; + slaveDatabaseID = heroSlaveTemplate.ID; heroSlaves.splice(j, 1); j--; slave = App.Utils.getHeroSlave(heroSlaveTemplate); @@ -248,6 +252,12 @@ App.Intro.acquisition = function() { slave.oldDevotion = slave.devotion; slave.oldTrust = slave.trust; slave.health.tired = 0; + if (isSecondMember) { + V.heroSlavesPurchased.push(secondMemberDatabaseID); + } else { + V.heroSlavesPurchased.push(slaveDatabaseID); + } + newSlave(slave); // Set incestuous relationship. Checking "addFamilyMember" makes sure we only do this after both family members have been added. diff --git a/src/npc/databases/cheatmodeDatabase.js b/src/npc/databases/cheatmodeDatabase.js index 09db66a30337d22487cbf325d670bf646ee7145c..d89edb30af11bc02b8baa456dec5c1f8dd2714e0 100644 --- a/src/npc/databases/cheatmodeDatabase.js +++ b/src/npc/databases/cheatmodeDatabase.js @@ -12,6 +12,7 @@ App.Intro.cheatModeSlaves = function() { const templates = App.Utils.buildHeroArray().pluckMany(jsRandom(3, 6)); for (const template of templates) { const HS = App.Utils.getHeroSlave(template); + V.heroSlavesPurchased.push(template.ID); newSlave(HS); slaveNames.push(HS.slaveName); } diff --git a/src/npc/generate/heroCreator.js b/src/npc/generate/heroCreator.js index 6d22c630da6f9b85cd3eefd0dc565d4398468e30..dbf3c8f647f74fc8f9e88eb11cb689b344a7e8bb 100644 --- a/src/npc/generate/heroCreator.js +++ b/src/npc/generate/heroCreator.js @@ -1,7 +1,7 @@ // cSpell:ignore Dextreme, Dincest, lolify, lolifying, lolification /** creates an array from App.Data.HeroSlaves that will be similar to the old $heroSlaves. - * @returns {Array} + * @returns {FC.HeroSlaveTemplate[]} */ App.Utils.buildHeroArray = function() { let chunks = []; @@ -90,13 +90,14 @@ App.Utils.getHeroFamilies = function() { }; /** - * @param {FC.HeroSlaveTemplate} template + * @param {FC.HeroSlaveTemplate} heroTemplate * @param {number} [newAge=undefined] * @returns {FC.SlaveState} * The optional newAge parameter is used for maintaining age gaps between siblings during arcology acquisition, and to make sure * one sibling isn't lolified if the other isn't. It has no effect outside of pedo mode, but in pedo m [The rest of this is missing for some reason] */ -App.Utils.getHeroSlave = function(template, newAge = undefined) { +App.Utils.getHeroSlave = function(heroTemplate, newAge = undefined) { + const template = clone(heroTemplate); /** * @param {FC.SlaveState & FC.HeroSlaveTemplate} slave */