diff --git a/src/endWeek/saWhore.js b/src/endWeek/saWhore.js index 4f7bd716bcf3652c91e37446dd01048777f93edb..4740fdb5de8a6dab1e4180083f8393df84c8a94a 100644 --- a/src/endWeek/saWhore.js +++ b/src/endWeek/saWhore.js @@ -7,6 +7,8 @@ window.saWhore = (function saWhore() { // if the following are set outside this file, they must be set in it too! let beauty; + let eligableClass; + let customers; let FuckResult; let cash; @@ -87,6 +89,16 @@ window.saWhore = (function saWhore() { FuckResult = slave.sexQuality; beauty = slave.sexAmount; T.incomeStats.customers = beauty; + eligableClass = eligableWhoreClass(slave); + if (eligableClass === 4) { + customers = "extremely wealthy"; + } else if (eligableClass === 3) { + customers = "upper class"; + } else if (eligableClass === 2) { + customers = "middle class"; + } else { + customers = "lower class"; + } } /** @@ -229,7 +241,7 @@ window.saWhore = (function saWhore() { * @param {App.Entity.SlaveState} slave */ function usageCountDescriptions(slave) { - r += ` ${His} appearance attracted ${beauty} members of the public (${Math.trunc(beauty / 7)} a day)`; + r += ` ${His} appearance attracted ${beauty} ${customers} members of the public (${Math.trunc(beauty / 7)} a day)`; if (beauty > 160) { r += `, so many that `; if (canDoVaginal(slave) && canDoAnal(slave)) { diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw index 726ad15e0909b32cff6a08d90c5bdf30417d0001..32f41595e372258b8a259478a62698e046e24fd3 100644 --- a/src/init/storyInit.tw +++ b/src/init/storyInit.tw @@ -826,6 +826,7 @@ You should have received a copy of the GNU General Public License along with thi /* Slave sexual services and goods variables */ <<set $publicFuckdolls = 0>> <<set $classSatisfied = {lowerClass: 0, middleClass: 0, upperClass: 0, topClass: 0}>> +<<set $whoreBudget = {lowerClass: 10, middleClass: 50, upperClass: 250, topClass: 1500}>> <<set $arcadePrice = 2>> <<set $clubSlaveSexAmount = 0>> diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js index b89cb9910b2d0e7f7f383351fdca2a802e945907..4d46c6728768fed7b5d0e798765ce3cf08d3b555 100644 --- a/src/js/datatypeCleanupJS.js +++ b/src/js/datatypeCleanupJS.js @@ -1656,6 +1656,58 @@ window.EconomyDatatypeCleanup = function EconomyDatatypeCleanup() { V.NPCSexSupply.middleClass = Math.max(+V.NPCSexSupply.middleClass, 0) || 0; V.NPCSexSupply.upperClass = Math.max(+V.NPCSexSupply.upperClass, 0) || 0; V.NPCSexSupply.topClass = Math.max(+V.NPCSexSupply.topClass, 0) || 0; + if (V.whoreBudget.lowerClass) { + V.whoreBudget.lowerClass = Math.max(+V.whoreBudget.lowerClass, 8) || 10; + } else if (V.LCRent > 30) { + V.whoreBudget.lowerClass = 8; + } else if (V.LCRent > 20) { + V.whoreBudget.lowerClass = 9; + } else if (V.LCRent > 10) { + V.whoreBudget.lowerClass = 10; + } else if (V.LCRent > 0) { + V.whoreBudget.lowerClass = 11; + } else { + V.whoreBudget.lowerClass = 12; + } + if (V.whoreBudget.middleClass) { + V.whoreBudget.middleClass = Math.max(+V.whoreBudget.middleClass, 40) || 50; + } else if (V.MCRent > 75) { + V.whoreBudget.middleClass = 40; + } else if (V.MCRent > 50) { + V.whoreBudget.middleClass = 45; + } else if (V.MCRent > 25) { + V.whoreBudget.middleClass = 50; + } else if (V.MCRent > 0) { + V.whoreBudget.middleClass = 55; + } else { + V.whoreBudget.middleClass = 60; + } + if (V.whoreBudget.upperClass) { + V.whoreBudget.upperClass = Math.max(+V.whoreBudget.upperClass, 200) || 250; + } else if (V.UCRent > 270) { + V.whoreBudget.upperClass = 200; + } else if (V.UCRent > 180) { + V.whoreBudget.upperClass = 225; + } else if (V.UCRent > 90) { + V.whoreBudget.upperClass = 250; + } else if (V.UCRent > 0) { + V.whoreBudget.upperClass = 275; + } else { + V.whoreBudget.upperClass = 300; + } + if (V.whoreBudget.topClass) { + V.whoreBudget.topClass = Math.max(+V.whoreBudget.upperClass, 1200) || 1500; + } else if (V.TCRent > 975) { + V.whoreBudget.topClass = 1200; + } else if (V.TCRent > 650) { + V.whoreBudget.topClass = 1350; + } else if (V.TCRent > 325) { + V.whoreBudget.topClass = 1500; + } else if (V.TCRent > 0) { + V.whoreBudget.topClass = 1650; + } else { + V.whoreBudget.topClass = 1800; + } V.NPCMarketShare.lowerClass = Math.clamp(+V.NPCMarketShare.lowerClass, 0, 1000) || 0; V.NPCMarketShare.middleClass = Math.clamp(+V.NPCMarketShare.middleClass, 0, 1000) || 0; V.NPCMarketShare.upperClass = Math.clamp(+V.NPCMarketShare.upperClass, 0, 1000) || 0; diff --git a/src/js/economyJS.js b/src/js/economyJS.js index 47f93edc3079184399f4dd683c4e3748608b474b..e23a1d0d87eef598ac38496883b4e8e8f9b8d628 100644 --- a/src/js/economyJS.js +++ b/src/js/economyJS.js @@ -1159,7 +1159,7 @@ window.slaveJobValues = function() { const s = V.slaves[V.slaveIndices[ID]]; s.sexAmount = (jsRandom(200, 240) + (20 * (4 - (s.anus - 2 * V.arcadeUpgradeInjectors))) + (10 * (4 - (s.vagina - 2 * V.arcadeUpgradeInjectors))) + Math.trunc(s.health / 5)); slaveJobValues.arcade += s.sexAmount; - }) + }); // Public sluts adding to 'club' V.JobIDArray["serve the public"].forEach(ID => { @@ -1374,7 +1374,6 @@ window.slaveJobValues = function() { } function SJVBrothel(s) { - let whoreScore; let toTheBrothel = 0; let beautyMultiplier = 1; s.minorInjury = 0; @@ -1548,37 +1547,53 @@ window.slaveJobValues = function() { } else if (s.trust < -20) { s.sexQuality -= 2; } - if (s.assignment === "work in the brothel") { + if (s.assignment === "work in the brothel" || s.assignment === "be the Madam") { s.sexQuality += 2; } else if (toTheBrothel === 1) { s.sexQuality += 2; brothelSpots -= 1; } - // Figuring out which type of customer the slave services (should probably be refined) - whoreScore = s.sexAmount * s.sexQuality; // The standard amount of money the whore is expected to make in a week - if (whoreScore > 8000 && s.skill.whore > 80) { - whoreScore = Math.trunc(whoreScore * 1.2); // 20% bonus to score for being of the heighest tier - s.sexAmount = jsRandom(30, 40); // Bringing sex amount into the desired range - s.sexQuality = Math.trunc(whoreScore / s.sexAmount); // Adjusting the price to the correct sex amount - slaveJobValues.brothel.topClass += whoreScore; // Registering the job value in the right slot - } else if (whoreScore > 5000 && s.skill.whore > 50) { - whoreScore = Math.trunc(whoreScore * 1.05); - s.sexAmount = jsRandom(40, 55); - s.sexQuality = Math.trunc(whoreScore / s.sexAmount); - slaveJobValues.brothel.upperClass += whoreScore; - } else if (whoreScore > 2000) { - whoreScore = Math.trunc(whoreScore * 0.9); - s.sexAmount = jsRandom(55, 75); - s.sexQuality = Math.trunc(whoreScore / s.sexAmount); - slaveJobValues.brothel.middleClass += whoreScore; + // The whoreScore function finds the appropriate customer class and then calculates the whore income stats associated with that class and adds to the class supply. + // whoreClass is the MAXIMUM player set class the whore is allowed to service, if the whore is not eligable it will service the highest it is capable of servicing properly. A whoreClass of 0 means it is on auto (always service the highest possible class). + function whoreScore(s, whoreClass) { + let score = s.sexAmount * s.sexQuality; // The standard amount of money the whore is expected to make in a week + let tempClass = eligableWhoreClass(whoreClass); + + // Calculate the stats + if (tempClass === 4) { + score = Math.trunc(score * 1.2); // 20% bonus to score for being of the heighest tier + s.sexAmount = jsRandom(60, 80); // Bringing sex amount into the desired range + s.sexQuality = Math.trunc(score / s.sexAmount); // Adjusting the price to the correct sex amount + slaveJobValues.brothel.topClass += score; // Registering the job value in the right slot + } else if (tempClass === 3) { + score = Math.trunc(score * 1.05); + s.sexAmount = jsRandom(85, 105); + s.sexQuality = Math.min(Math.trunc(score / s.sexAmount), V.whoreBudget.upperClass * 0.6); // The upper class will pay a maximum of 0.6 times their weekly budget per service + slaveJobValues.brothel.upperClass += Math.min(score, s.sexAmount * V.whoreBudget.upperClass * 0.6); + } else if (tempClass === 2) { + score = Math.trunc(score * 0.9); + s.sexAmount = jsRandom(100, 120); + s.sexQuality = Math.min(Math.trunc(score / s.sexAmount), V.whoreBudget.middleClass); // The middle class will pay a maximum of their weekly budget per service + slaveJobValues.brothel.middleClass += Math.min(score, s.sexAmount * V.whoreBudget.middleClass); + } else { + score = Math.trunc(score * 0.75); + s.sexAmount = jsRandom(110, 140); + s.sexQuality = Math.min(Math.trunc(score / s.sexAmount), V.whoreBudget.lowerClass * 1.5); // The lower class will pay a maximum of 1.5 times their weekly budget per service + slaveJobValues.brothel.lowerClass += Math.min(score, s.sexAmount * V.whoreBudget.lowerClass * 1.5); + } + } + + if (s.assignment === "work in the brothel") { + if (!s.whoreClass) { + s.whoreClass = 0; + } + whoreScore(s, s.whoreClass); } else { - whoreScore = Math.trunc(whoreScore * 0.75); - s.sexAmount = jsRandom(75, 100); - s.sexQuality = Math.trunc(whoreScore / s.sexAmount); - slaveJobValues.brothel.lowerClass += whoreScore; + whoreScore(s, 0); } } + // Saturation penalty for public servants. Even the most beautiful slaves lose some of their shine if they have too much competition. if (slaveJobValues.club > 0) { slaveJobValues.clubSP = (Math.pow(slaveJobValues.club / 1000, 0.95) * 1000) / slaveJobValues.club; @@ -1586,6 +1601,28 @@ window.slaveJobValues = function() { return slaveJobValues; }; +window.eligableWhoreClass = function(s) { + let tempClass; + let score = s.sexAmount * s.sexQuality; + if (typeof s.whoreClass === 'undefined' || s.whoreClass === 0) { + tempClass = 4; + } else { + tempClass = s.whoreClass; + } + // Find maximum eligable class + // these could be refined further if needed. + if (tempClass === 4 && !(score > 7000 && s.skill.whore > 80 && s.skill.entertainment > 50)) { + tempClass -= 1; + } + if (tempClass === 3 && !(score > 3000 && s.skill.whore > 50)) { + tempClass -= 1; + } + if (tempClass === 2 && !(score > 1250)) { + tempClass -= 1; + } + return tempClass; +}; + window.getSlaveStatisticData = function(s, facility) { if (!facility) { // Base data, even without facility return { diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw index 5e8cdc951d2c3a3ed1a68596aff1a7edbe622ce4..45513dd26e9675a4fe99eb935bd8f2ca8add0754 100644 --- a/src/uncategorized/BackwardsCompatibility.tw +++ b/src/uncategorized/BackwardsCompatibility.tw @@ -2799,28 +2799,28 @@ Setting missing global variables: <<set $publicFuckdolls = 0>> <</if>> <<if def $lowerClassSexDemand>> - <<set $lowerClassSexDemand = null>> + <<unset $lowerClassSexDemand>> <</if>> <<if def $lowerClassSatisfied>> - <<set $classSatisfied.lowerClass = $lowerClassSatisfied, - $lowerClassSatisfied = null>> + <<set $classSatisfied.lowerClass = $lowerClassSatisfied>> + <<unset $lowerClassSatisfied>> <</if>> <<if def $middleClassSexDemand>> - <<set $middleClassSexDemand = null>> + <<unset $middleClassSexDemand>> <</if>> <<if def $upperClassSexDemand>> - <<set $upperClassSexDemand = null>> + <<unset $upperClassSexDemand>> <</if>> <<if def $topClassSexDemand>> - <<set $topClassSexDemand = null>> + <<unset $topClassSexDemand>> <</if>> <<if def $sexSubsidiesLC>> - <<set $sexSubsidies.lowerClass = $sexSubsidiesLC, - $sexSubsidiesLC = null>> + <<set $sexSubsidies.lowerClass = $sexSubsidiesLC>> + <<unset $sexSubsidiesLC>> <</if>> <<if def $sexSupplyBarriersLC>> - <<set $sexSupplyBarriers.lowerClass = $sexSupplyBarriersLC, - $sexSupplyBarriersLC = null>> + <<set $sexSupplyBarriers.lowerClass = $sexSupplyBarriersLC>> + <<unset $sexSupplyBarriersLC>> <</if>> <<if ndef $arcadePrice>> <<set $arcadePrice = 2>> diff --git a/src/uncategorized/manageArcology.tw b/src/uncategorized/manageArcology.tw index b34d8772898b5e6fe2ff9c008f080904a706e382..aea12b671dbd0e799de39cddbc69c1aed0dff41b 100644 --- a/src/uncategorized/manageArcology.tw +++ b/src/uncategorized/manageArcology.tw @@ -284,51 +284,51 @@ _percUpperClass = Math.trunc(($upperClass / ($ACitizens + $ASlaves)) * 1000) / 1 _percTopClass = Math.trunc(($topClass / ($ACitizens + $ASlaves)) * 1000) / 10>> <br>Lower Class Citizens | $lowerClass | <<print _percLowerClass>>% | Rent @@.yellowgreen;<<print cashFormat($LCRent / 25)>>@@ <<if $LCRent > 30>> - //Very High// | [[Decrease|Manage Arcology][$LCRent = 30, $rentEffectL = 0.94]] + //Very High// | [[Decrease|Manage Arcology][$LCRent = 30, $rentEffectL = 0.94, $whoreBudget.lowerClass = 9]] <<elseif $LCRent > 20>> - //High// | [[Increase|Manage Arcology][$LCRent = 40, $rentEffectL = 0.85]] | [[Decrease|Manage Arcology][$LCRent = 20, $rentEffectL = 1]] + //High// | [[Increase|Manage Arcology][$LCRent = 40, $rentEffectL = 0.85, $whoreBudget.lowerClass = 8]] | [[Decrease|Manage Arcology][$LCRent = 20, $rentEffectL = 1, $whoreBudget.lowerClass = 10]] <<elseif $LCRent > 10>> - //Average// | [[Increase|Manage Arcology][$LCRent = 30, $rentEffectL = 0.94]] | [[Decrease|Manage Arcology][$LCRent = 10, $rentEffectL = 1.04]] + //Average// | [[Increase|Manage Arcology][$LCRent = 30, $rentEffectL = 0.94, $whoreBudget.lowerClass = 9]] | [[Decrease|Manage Arcology][$LCRent = 10, $rentEffectL = 1.04, $whoreBudget.lowerClass = 11]] <<elseif $LCRent > 0>> - //Low// | [[Increase|Manage Arcology][$LCRent = 20, $rentEffectL = 1]] | [[Free Rent|Manage Arcology][$LCRent = 0, $rentEffectL = 1.1]] + //Low// | [[Increase|Manage Arcology][$LCRent = 20, $rentEffectL = 1, $whoreBudget.lowerClass = 10]] | [[Free Rent|Manage Arcology][$LCRent = 0, $rentEffectL = 1.1, $whoreBudget.lowerClass = 12]] <<else>> - //Free// | [[Increase|Manage Arcology][$LCRent = 10, $rentEffectL = 1.04]] + //Free// | [[Increase|Manage Arcology][$LCRent = 10, $rentEffectL = 1.04, $whoreBudget.lowerClass = 11]] <</if>> <br>Middle Class Citizens | $middleClass | <<print _percMiddleClass>>% | Rent @@.yellowgreen;<<print cashFormat($MCRent / 25)>>@@ <<if $MCRent > 75>> - //Very High// | [[Decrease|Manage Arcology][$MCRent = 75, $rentEffectM = 0.94]] + //Very High// | [[Decrease|Manage Arcology][$MCRent = 75, $rentEffectM = 0.94, $whoreBudget.middleClass = 45]] <<elseif $MCRent > 50>> - //High// | [[Increase|Manage Arcology][$MCRent = 100, $rentEffectM = 0.85]] | [[Decrease|Manage Arcology][$MCRent = 50, $rentEffectM = 1]] + //High// | [[Increase|Manage Arcology][$MCRent = 100, $rentEffectM = 0.85, $whoreBudget.middleClass = 40]] | [[Decrease|Manage Arcology][$MCRent = 50, $rentEffectM = 1, $whoreBudget.middleClass = 50]] <<elseif $MCRent > 25>> - //Average// | [[Increase|Manage Arcology][$MCRent = 75, $rentEffectM = 0.94]] | [[Decrease|Manage Arcology][$MCRent = 25, $rentEffectM = 1.04]] + //Average// | [[Increase|Manage Arcology][$MCRent = 75, $rentEffectM = 0.94, $whoreBudget.middleClass = 45]] | [[Decrease|Manage Arcology][$MCRent = 25, $rentEffectM = 1.04, $whoreBudget.middleClass = 55]] <<elseif $MCRent > 0>> - //Low// | [[Increase|Manage Arcology][$MCRent = 50, $rentEffectM = 1]] | [[Free Rent|Manage Arcology][$MCRent = 0, $rentEffectM = 1.1]] + //Low// | [[Increase|Manage Arcology][$MCRent = 50, $rentEffectM = 1, $whoreBudget.middleClass = 50]] | [[Free Rent|Manage Arcology][$MCRent = 0, $rentEffectM = 1.1, $whoreBudget.middleClass = 60]] <<else>> - //Free// | [[Increase|Manage Arcology][$MCRent = 25, $rentEffectM = 1.04]] + //Free// | [[Increase|Manage Arcology][$MCRent = 25, $rentEffectM = 1.04, $whoreBudget.middleClass = 55]] <</if>> <br>Upper Class Citizens | $upperClass | <<print _percUpperClass>>% | Rent @@.yellowgreen;<<print cashFormat($UCRent / 25)>>@@ <<if $UCRent > 270>> - //Very High// | [[Decrease|Manage Arcology][$UCRent = 270, $rentEffectU = 0.94]] + //Very High// | [[Decrease|Manage Arcology][$UCRent = 270, $rentEffectU = 0.94, $whoreBudget.upperClass = 225]] <<elseif $UCRent > 180>> - //High// | [[Increase|Manage Arcology][$UCRent = 360, $rentEffectU = 0.85]] | [[Decrease|Manage Arcology][$UCRent = 180, $rentEffectU = 1]] + //High// | [[Increase|Manage Arcology][$UCRent = 360, $rentEffectU = 0.85, $whoreBudget.upperClass = 200]] | [[Decrease|Manage Arcology][$UCRent = 180, $rentEffectU = 1, $whoreBudget.upperClass = 250]] <<elseif $UCRent > 90>> - //Average// | [[Increase|Manage Arcology][$UCRent = 270, $rentEffectU = 0.94]] | [[Decrease|Manage Arcology][$UCRent = 90, $rentEffectU = 1.04]] + //Average// | [[Increase|Manage Arcology][$UCRent = 270, $rentEffectU = 0.94, $whoreBudget.upperClass = 225]] | [[Decrease|Manage Arcology][$UCRent = 90, $rentEffectU = 1.04, $whoreBudget.upperClass = 275]] <<elseif $UCRent > 0>> - //Low// | [[Increase|Manage Arcology][$UCRent = 180, $rentEffectU = 1]] | [[Free Rent|Manage Arcology][$UCRent = 0, $rentEffectU = 1.1]] + //Low// | [[Increase|Manage Arcology][$UCRent = 180, $rentEffectU = 1, $whoreBudget.upperClass = 250]] | [[Free Rent|Manage Arcology][$UCRent = 0, $rentEffectU = 1.1, $whoreBudget.upperClass = 300]] <<else>> - //Free// | [[Increase|Manage Arcology][$UCRent = 90, $rentEffectU = 1.04]] + //Free// | [[Increase|Manage Arcology][$UCRent = 90, $rentEffectU = 1.04, $whoreBudget.upperClass = 275]] <</if>> <br>Millionaires | $topClass | <<print _percTopClass>>% | Rent @@.yellowgreen;<<print cashFormat($TCRent / 25)>>@@ <<if $TCRent > 975>> - //Very High// | [[Decrease|Manage Arcology][$TCRent = 975, $rentEffectT = 0.94]] + //Very High// | [[Decrease|Manage Arcology][$TCRent = 975, $rentEffectT = 0.94, $whoreBudget.topClass = 1350]] <<elseif $TCRent > 650>> - //High// | [[Increase|Manage Arcology][$TCRent = 1300, $rentEffectT = 0.85]] | [[Decrease|Manage Arcology][$TCRent = 650, $rentEffectT = 1]] + //High// | [[Increase|Manage Arcology][$TCRent = 1300, $rentEffectT = 0.85, $whoreBudget.topClass = 1200]] | [[Decrease|Manage Arcology][$TCRent = 650, $rentEffectT = 1, $whoreBudget.topClass = 1500]] <<elseif $TCRent > 325>> - //Average// | [[Increase|Manage Arcology][$TCRent = 975, $rentEffectT = 0.94]] | [[Decrease|Manage Arcology][$TCRent = 325, $rentEffectT = 1.04]] + //Average// | [[Increase|Manage Arcology][$TCRent = 975, $rentEffectT = 0.94, $whoreBudget.topClass = 1350]] | [[Decrease|Manage Arcology][$TCRent = 325, $rentEffectT = 1.04, $whoreBudget.topClass = 1650]] <<elseif $TCRent > 0>> - //Low// | [[Increase|Manage Arcology][$TCRent = 650, $rentEffectT = 1]] | [[Free Rent|Manage Arcology][$TCRent = 0, $rentEffectT = 1.1]] + //Low// | [[Increase|Manage Arcology][$TCRent = 650, $rentEffectT = 1, $whoreBudget.topClass = 1500]] | [[Free Rent|Manage Arcology][$TCRent = 0, $rentEffectT = 1.1, $whoreBudget.topClass = 1800]] <<else>> - //Free// | [[Increase|Manage Arcology][$TCRent = 325, $rentEffectT = 1.04]] + //Free// | [[Increase|Manage Arcology][$TCRent = 325, $rentEffectT = 1.04, $whoreBudget.topClass = 1650]] <</if>> <br>Slaves | $ASlaves | <<print _percASlaves>>% diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw index fc3fcaec190c06817e21ff213dec89bea734044f..460b79061ffbf3ed3c6f6a0a7a0235f4b12bb248 100644 --- a/src/uncategorized/slaveAssignmentsReport.tw +++ b/src/uncategorized/slaveAssignmentsReport.tw @@ -19,17 +19,13 @@ Depending on the conditions they may derive more or less 'utility' out of their credits spent i.e. a highly paternalist arcology with little choice for its lower class but Fuckdolls may still put money into them but not get the same satisfaction out of it*/ /*Low rent increases demand/available money for sexual services, high rent decreases it*/ -<<set _LCRent = 1 + (20 - $LCRent) / 100, -_lowerClassSexDemand = Math.trunc($lowerClass * _LCRent) * 10, +<<set _lowerClassSexDemand = $lowerClass * $whoreBudget.lowerClass, _lowerClassSexDemandRef = Math.max(_lowerClassSexDemand, 1), -_MCRent = 1 + (50 - $MCRent) / 250, -_middleClassSexDemand = Math.trunc($middleClass * _MCRent) * 50, +_middleClassSexDemand = $middleClass * $whoreBudget.middleClass, _middleClassSexDemandRef = Math.max(_lowerClassSexDemand, 1), -_UCRent = 1 + (180 - $UCRent) / 900, -_upperClassSexDemand = Math.trunc($upperClass * _UCRent) * 400, +_upperClassSexDemand = $upperClass * $whoreBudget.upperClass, _upperClassSexDemandRef = Math.max(_upperClassSexDemand, 1), -_TCRent = 1 + (650 - $TCRent) / 3250, -_topClassSexDemand = Math.trunc($topClass * _TCRent) * 4000, +_topClassSexDemand = $topClass * $whoreBudget.topClass, _topClassSexDemandRef = Math.max(_upperClassSexDemand, 1), _visitorsSexDemand = Math.trunc($visitors) * 40, $whorePriceAdjustment = {lowerClass: 0, middleClass: 0, upperClass: 0, topClass: 0}, @@ -217,14 +213,14 @@ $NPCMarketShare.topClass = Math.trunc(($NPCSexSupply.topClass * 1000) / ($NPCSex <</if>> /*Sexual satisfaction effects*/ -<<if _lowerClassSexDemand > $lowerClass * _LCRent * 6>> /*You are providing < 40% of their desired amount of sex*/ +<<if _lowerClassSexDemand > $lowerClass * $whoreBudget.lowerClass * 0.6>> /*You are providing < 40% of their desired amount of sex*/ <<set $sexDemandResult.lowerClass = 1>> <<if $week <= 30>> <<set $classSatisfied.lowerClass = 0>> <<else>> <<set $classSatisfied.lowerClass = -1>> <</if>> -<<elseif _lowerClassSexDemand > $lowerClass * _LCRent * 4>> /*You are providing between 40 and 60% of their desired amount of sex*/ +<<elseif _lowerClassSexDemand > $lowerClass * $whoreBudget.lowerClass * 0.4>> /*You are providing between 40 and 60% of their desired amount of sex*/ <<set $sexDemandResult.lowerClass = 2>> <<if $week <= 40>> <<set $classSatisfied.lowerClass = 1>> @@ -233,7 +229,7 @@ $NPCMarketShare.topClass = Math.trunc(($NPCSexSupply.topClass * 1000) / ($NPCSex <<else>> <<set $classSatisfied.lowerClass = -1>> <</if>> -<<elseif _lowerClassSexDemand > $lowerClass * _LCRent * 2>> /*You are providing between 60 and 80% of their desired amount of sex*/ +<<elseif _lowerClassSexDemand > $lowerClass * $whoreBudget.lowerClass * 0.2>> /*You are providing between 60 and 80% of their desired amount of sex*/ <<set $sexDemandResult.lowerClass = 3>> <<if $week <= 50>> <<set $classSatisfied.lowerClass = 1>> @@ -248,14 +244,14 @@ $NPCMarketShare.topClass = Math.trunc(($NPCSexSupply.topClass * 1000) / ($NPCSex $classSatisfied.lowerClass = 1>> <</if>> -<<if _middleClassSexDemand > $middleClass * _MCRent * 30>> /*You are providing < 40% of their desired amount of sex*/ +<<if _middleClassSexDemand > $middleClass * $whoreBudget.middleClass * 0.6>> /*You are providing < 40% of their desired amount of sex*/ <<set $sexDemandResult.middleClass = 1>> <<if $week <= 30>> <<set $classSatisfied.middleClass = 0>> <<else>> <<set $classSatisfied.middleClass = -1>> <</if>> -<<elseif _middleClassSexDemand > $middleClass * _MCRent * 20>> /*You are providing between 40 and 60% of their desired amount of sex*/ +<<elseif _middleClassSexDemand > $middleClass * $whoreBudget.middleClass * 0.4>> /*You are providing between 40 and 60% of their desired amount of sex*/ <<set $sexDemandResult.middleClass = 2>> <<if $week <= 40>> <<set $classSatisfied.middleClass = 1>> @@ -264,7 +260,7 @@ $NPCMarketShare.topClass = Math.trunc(($NPCSexSupply.topClass * 1000) / ($NPCSex <<else>> <<set $classSatisfied.middleClass = -1>> <</if>> -<<elseif _middleClassSexDemand > $middleClass * _MCRent * 10>> /*You are providing between 60 and 80% of their desired amount of sex*/ +<<elseif _middleClassSexDemand > $middleClass * $whoreBudget.middleClass * 0.2>> /*You are providing between 60 and 80% of their desired amount of sex*/ <<set $sexDemandResult.middleClass = 3>> <<if $week <= 50>> <<set $classSatisfied.middleClass = 1>> @@ -279,14 +275,14 @@ $NPCMarketShare.topClass = Math.trunc(($NPCSexSupply.topClass * 1000) / ($NPCSex $classSatisfied.middleClass = 1>> <</if>> -<<if _upperClassSexDemand > $upperClass * _UCRent * 240>> /*You are providing < 40% of their desired amount of sex*/ +<<if _upperClassSexDemand > $upperClass * $whoreBudget.upperClass * 0.6>> /*You are providing < 40% of their desired amount of sex*/ <<set $sexDemandResult.upperClass = 1>> <<if $week <= 30>> <<set $classSatisfied.upperClass = 0>> <<else>> <<set $classSatisfied.upperClass = -1>> <</if>> -<<elseif _upperClassSexDemand > $upperClass * _UCRent * 160>> /*You are providing between 40 and 60% of their desired amount of sex*/ +<<elseif _upperClassSexDemand > $upperClass * $whoreBudget.upperClass * 0.4>> /*You are providing between 40 and 60% of their desired amount of sex*/ <<set $sexDemandResult.upperClass = 2>> <<if $week <= 40>> <<set $classSatisfied.upperClass = 1>> @@ -295,7 +291,7 @@ $NPCMarketShare.topClass = Math.trunc(($NPCSexSupply.topClass * 1000) / ($NPCSex <<else>> <<set $classSatisfied.upperClass = -1>> <</if>> -<<elseif _upperClassSexDemand > $upperClass * _UCRent * 80>> /*You are providing between 60 and 80% of their desired amount of sex*/ +<<elseif _upperClassSexDemand > $upperClass * $whoreBudget.upperClass * 0.2>> /*You are providing between 60 and 80% of their desired amount of sex*/ <<set $sexDemandResult.upperClass = 3>> <<if $week <= 50>> <<set $classSatisfied.upperClass = 1>> @@ -310,14 +306,14 @@ $NPCMarketShare.topClass = Math.trunc(($NPCSexSupply.topClass * 1000) / ($NPCSex $classSatisfied.upperClass = 1>> <</if>> -<<if _topClassSexDemand > $topClass * _TCRent * 2400>> /*You are providing < 40% of their desired amount of sex*/ +<<if _topClassSexDemand > $topClass * $whoreBudget.topClass * 0.6>> /*You are providing < 40% of their desired amount of sex*/ <<set $topClassSexDemandResult = 1>> <<if $week <= 30>> <<set $topClassSatisfied = 0>> <<else>> <<set $topClassSatisfied = -1>> <</if>> -<<elseif _topClassSexDemand > $topClass * _TCRent * 1600>> /*You are providing between 40 and 60% of their desired amount of sex*/ +<<elseif _topClassSexDemand > $topClass * $whoreBudget.topClass * 0.4>> /*You are providing between 40 and 60% of their desired amount of sex*/ <<set $topClassSexDemandResult = 2>> <<if $week <= 40>> <<set $topClassSatisfied = 1>> @@ -326,7 +322,7 @@ $NPCMarketShare.topClass = Math.trunc(($NPCSexSupply.topClass * 1000) / ($NPCSex <<else>> <<set $topClassSatisfied = -1>> <</if>> -<<elseif _topClassSexDemand > $topClass * _TCRent * 800>> /*You are providing between 60 and 80% of their desired amount of sex*/ +<<elseif _topClassSexDemand > $topClass * $whoreBudget.topClass * 0.2>> /*You are providing between 60 and 80% of their desired amount of sex*/ <<set $topClassSexDemandResult = 3>> <<if $week <= 50>> <<set $topClassSatisfied = 1>> diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw index 559bb44c4b4e212fae005a6a73537c14d5f8646d..81fa348ef728edcbe72a25d19ae54665d4275d8c 100644 --- a/src/uncategorized/slaveInteract.tw +++ b/src/uncategorized/slaveInteract.tw @@ -1515,6 +1515,13 @@ Hormones: <strong><span id="hormones"> <</if>> <br><br>__Behavior__:<br> +Whoring Target: <strong><span id="whoreClass"><<if !$activeSlave.whoreClass>>auto<<elseif $activeSlave.whoreClass == 1>>the lower class<<elseif $activeSlave.whoreClass == 2>>the middle class<<elseif $activeSlave.whoreClass == 3>>the upper class<<elseif $activeSlave.whoreClass == 4>>millionaires<<else>>THERE HAS BEEN AN ERROR<</if>></span></strong>. +<<link "Auto">><<set $activeSlave.whoreClass = 0>><<replace "#whoreClass">>auto<</replace>><</link>> | +<<link "Lower Class">><<set $activeSlave.whoreClass = 1>><<replace "#whoreClass">>the lower class<</replace>><</link>> | +<<link "Middle Class">><<set $activeSlave.whoreClass = 2>><<replace "#whoreClass">>the middle class<</replace>><</link>> | +<<link "Upper Class">><<set $activeSlave.whoreClass = 3>><<replace "#whoreClass">>the upper class<</replace>><</link>> | +<<link "Millionaires">><<set $activeSlave.whoreClass = 0>><<replace "#whoreClass">>millionaires<</replace>><</link>><br> + <<if $activeSlave.fuckdoll > 0>> //Rules have little meaning for living sex toys// <<else>>