diff --git a/src/js/slaveCostJS.js b/src/js/slaveCostJS.js index 4a63b87d398f085f7fef1c8ea00ca525677dfac1..1ae2bcda956771ff6727d49ba5e177672ad16b02 100644 --- a/src/js/slaveCostJS.js +++ b/src/js/slaveCostJS.js @@ -1425,21 +1425,23 @@ window.FResult = (function() { * @param {App.Entity.SlaveState} slave * @returns {number} */ - function FResult(slave) { + function FResult(slave, forSale = 0) { V = State.variables; incestBonus = V.arcologies[0].FSEgyptianRevivalist > 20 || V.arcologies[0].FSEgyptianRevivalistIncestPolicy === 1; - calcUseWeights(slave); + calcUseWeights(slave,forSale); if (!slave.fuckdoll) { - calcNotFuckdoll(slave); + calcNotFuckdoll(slave,forSale); } else { result += slave.fuckdoll / 10; } - result += Math.max(0, slave.aphrodisiacs) * 2; - - if (slave.inflationType === "aphrodisiac") { - result += slave.inflation * 4; + if (!forSale) { + result += Math.max(0, slave.aphrodisiacs) * 2; + + if (slave.inflationType === "aphrodisiac") { + result += slave.inflation * 4; + } } if (slave.lactation > 0) { @@ -1453,11 +1455,6 @@ window.FResult = (function() { if (V.seeAge === 1) { calcAge(slave); } - if (slave.fetish === "mindbroken") { - result = Math.trunc(result * 0.4); - } else { - result = Math.trunc(result * 0.7); - } if (slave.pregWeek < 0) { result += Math.trunc(result * slave.pregWeek / 10); @@ -1468,6 +1465,13 @@ window.FResult = (function() { if (V.arcologies[0].FSHedonisticDecadence > 20) { calcHedonismWeight(slave); } + + if (slave.fetish === "mindbroken") { + result = Math.trunc(result * 0.4); + } else { + result = Math.trunc(result * 0.7); + } + if (result < 2) { if (supremeRaceP(slave) && V.arcologies[0].FSSupremacist > 20) { result = 0; @@ -1475,14 +1479,15 @@ window.FResult = (function() { result = 2; } } + return result; } /** * @param {App.Entity.SlaveState} slave */ - function calcUseWeights(slave) { - result = (3 - slave.anus) + (slave.muscles / 30); + function calcUseWeights(slave,forSale=0) { + result = (slave.muscles / 30); if (slave.muscles < -95) { result -= 5; } else if (slave.muscles < -30) { @@ -1498,17 +1503,18 @@ window.FResult = (function() { if (slave.sexualFlaw === "cum addict") { result += (V.oralUseWeight / uses) * (slave.skill.oral / 30); } - if (canDoVaginal(slave)) { + if (canDoVaginal(slave) || (slave.vagina > -1 && forSale)) { result += 6 * (V.vaginalUseWeight / uses) * (slave.skill.vaginal / 30); result += (3 - slave.vagina); result += slave.vaginaLube; } - if (canDoAnal(slave)) { + if (canDoAnal(slave) || forSale) { result += 6 * (V.analUseWeight / uses) * (slave.skill.anal / 30); + result += (3 - slave.anus); if (slave.sexualFlaw === "anal addict") { result += (V.analUseWeight / uses) * (slave.skill.anal / 30); } - if (slave.inflationType === "aphrodisiac") { + if (slave.inflationType === "aphrodisiac" && !forSale) { result += (V.analUseWeight / uses) * (slave.inflation * 3); } } @@ -1620,7 +1626,7 @@ window.FResult = (function() { result += 0; } } - if (V.arcologies[0].FSRepopulationFocusMilfPolicy === 1 || V.arcologies[0].FSRepopulationFocus > 20) { + if ((V.arcologies[0].FSRepopulationFocusMilfPolicy === 1 || V.arcologies[0].FSRepopulationFocus > 20) && slave.counter.birthsTotal > 0) { result += 1; } } @@ -1701,9 +1707,7 @@ window.FResult = (function() { if (slave.eyewear !== "corrective glasses" && slave.eyewear !== "corrective contacts") { result -= 1; } - } else if (slave.eyewear === "blurring glasses") { - result -= 1; - } else if (slave.eyewear === "blurring contacts") { + } else if (slave.eyewear === "blurring glasses" || slave.eyewear === "blurring contacts") { result -= 1; } } @@ -1753,7 +1757,7 @@ window.FResult = (function() { * @param {App.Entity.SlaveState} slave */ function calcMatureBonus(slave) { - if (slave.visualAge >= 30 && slave.actualAge >= 30 && slave.physicalAge < slave.visualAge) { + if (slave.visualAge >= 30 && slave.actualAge >= 30 && slave.physicalAge > slave.visualAge) { result += Math.min((slave.physicalAge - slave.visualAge) * 2, 20); } // looks and acts mature, but has a body that just won't quit } @@ -1761,25 +1765,32 @@ window.FResult = (function() { /** * @param {App.Entity.SlaveState} slave */ - function calcNotFuckdoll(slave) { - if (V.familyTesting === 1 && totalRelatives(slave) > 0) { - calcWorksWithRelatives(slave); - } else if (!V.familyTesting && slave.relation !== 0) { - calcWorksWithRelativesVanilla(slave); - } - if (slave.relationship > 0) { - calcWorksWithRelationship(slave); - } - if (slave.rivalry !== 0) { - calcWorksWithRival(slave); + function calcNotFuckdoll(slave,forSale=0) { + if (!forSale) { + if (V.familyTesting === 1 && totalRelatives(slave) > 0) { + calcWorksWithRelatives(slave); + } else if (!V.familyTesting && slave.relation !== 0) { + calcWorksWithRelativesVanilla(slave); + } + if (slave.relationship > 0) { + calcWorksWithRelationship(slave); + } + if (slave.rivalry !== 0) { + calcWorksWithRival(slave); + } + calcHInjectionsDiet(slave); } - calcHInjectionsDiet(slave); calcPreg(slave); calcRace(slave); calcSexAttributes(slave); calcCareer(slave); - calcSight(slave); - calcHearing(slave); + if (!forSale) { + calcSight(slave); + calcHearing(slave); + } else { + result += slave.hears; + result += Math.clamp(slave.eyes*2 + 1,-3,0); + } if (V.arcologies[0].FSEgyptianRevivalist !== "unset") { calcEgyptianBonus(slave); } @@ -1865,7 +1876,7 @@ window.slaveCost = (function() { V = State.variables; arcology = V.arcologies[0]; multiplier = V.slaveCostFactor; - cost = Beauty(slave) * FResult(slave); + cost = Beauty(slave) * FResult(slave,1); calcGenitalsCost(slave); calcDevotionTrustCost(slave); @@ -1893,9 +1904,13 @@ window.slaveCost = (function() { * @param {App.Entity.SlaveState} slave */ function calcGenitalsCost(slave) { - if (slave.vagina === 0) { - multiplier += 0.1; + if (slave.vagina === 0 && slave.counter.vaginal === 0) { + multiplier += 0.2; + } + if (slave.anus === 0 && slave.counter.anal === 0) { + multiplier += 0.2; } + //Boosted these to 20% to account for the fact that it limits the skill that can be attained if (slave.vagina > -1 && arcology.FSRestartSMR === 1) { if (slave.dick > 0) { if (slave.ovaries === 0 && slave.balls === 0) { @@ -2101,21 +2116,21 @@ window.slaveCost = (function() { function calcAgeCost(slave) { if (slave.physicalAge === V.minimumSlaveAge && slave.physicalAge === V.fertilityAge && canGetPregnant(slave) && (arcology.FSRepopulationFocus !== "unset" || arcology.FSGenderFundamentalist !== "unset")) { if (slave.birthWeek === 0) { - multiplier -= 0.4; + multiplier += 0.4; } else if (slave.birthWeek < 4) { - multiplier -= 0.1; + multiplier += 0.1; } } else if (slave.physicalAge === V.minimumSlaveAge) { if (slave.birthWeek === 0) { - multiplier -= 0.2; + multiplier += 0.2; } else if (slave.birthWeek < 4) { - multiplier -= 0.05; + multiplier += 0.05; } } else if (slave.physicalAge === V.fertilityAge && canGetPregnant(slave) && (arcology.FSRepopulationFocus !== "unset" || arcology.FSGenderFundamentalist !== "unset")) { if (slave.birthWeek === 0) { - multiplier -= 0.2; + multiplier += 0.2; } else if (slave.birthWeek < 4) { - multiplier -= 0.05; + multiplier += 0.05; } } }