diff --git a/src/endWeek/saGetMilked.js b/src/endWeek/saGetMilked.js index 1bef5b03cfae8bf73f6760523dced021239e3421..85876b9935cfac41f0037d3c3169eec686a75eea 100644 --- a/src/endWeek/saGetMilked.js +++ b/src/endWeek/saGetMilked.js @@ -901,94 +901,7 @@ App.SlaveAssignment.getMilked = (function() { // FACILITY DECORATION IMPACTS function applyFSDecoration() { - if (V.dairyDecoration !== "standard") { - let fsGain = Math.min(0.0001 * V.FSSingleSlaveRep * (milk + (5 * cum)), 1); - switch (V.dairyDecoration) { - case "Roman Revivalist": - arcology.FSRomanRevivalist = Math.clamp(arcology.FSRomanRevivalist += fsGain, 0, 100); - break; - case "Aztec Revivalist": - arcology.FSAztecRevivalist = Math.clamp(arcology.FSAztecRevivalist += fsGain, 0, 100); - break; - case "Egyptian Revivalist": - arcology.FSEgyptianRevivalist = Math.clamp(arcology.FSEgyptianRevivalist += fsGain, 0, 100); - break; - case "Edo Revivalist": - arcology.FSEdoRevivalist = Math.clamp(arcology.FSEdoRevivalist += fsGain, 0, 100); - break; - case "Arabian Revivalist": - arcology.FSArabianRevivalist = Math.clamp(arcology.FSArabianRevivalist += fsGain, 0, 100); - break; - case "Chinese Revivalist": - arcology.FSChineseRevivalist = Math.clamp(arcology.FSChineseRevivalist += fsGain, 0, 100); - break; - case "Chattel Religionist": - arcology.FSChattelReligionist = Math.clamp(arcology.FSChattelReligionist += fsGain, 0, 100); - break; - case "Degradationist": - arcology.FSDegradationist = Math.clamp(arcology.FSDegradationist += fsGain, 0, 100); - break; - case "Repopulation Focus": - arcology.FSRepopulationFocus = Math.clamp(arcology.FSRepopulationFocus += fsGain, 0, 100); - break; - case "Eugenics": - arcology.FSRestart = Math.clamp(arcology.FSRestart += fsGain, 0, 100); - break; - case "Asset Expansionist": - arcology.FSAssetExpansionist = Math.clamp(arcology.FSAssetExpansionist += fsGain, 0, 100); - break; - case "Transformation Fetishist": - arcology.FSTransformationFetishist = Math.clamp(arcology.FSTransformationFetishist += fsGain, 0, 100); - break; - case "Gender Radicalist": - arcology.FSGenderRadicalist = Math.clamp(arcology.FSGenderRadicalist += fsGain, 0, 100); - break; - case "Gender Fundamentalist": - arcology.FSGenderFundamentalist = Math.clamp(arcology.FSGenderFundamentalist += fsGain, 0, 100); - break; - case "Physical Idealist": - arcology.FSPhysicalIdealist = Math.clamp(arcology.FSPhysicalIdealist += fsGain, 0, 100); - break; - case "Hedonistic": - arcology.FSHedonisticDecadence = Math.clamp(arcology.FSHedonisticDecadence += fsGain, 0, 100); - break; - case "Supremacist": - arcology.FSSupremacist = Math.clamp(arcology.FSSupremacist += fsGain, 0, 100); - break; - case "Subjugationist": - arcology.FSSubjugationist = Math.clamp(arcology.FSSubjugationist += fsGain, 0, 100); - break; - case "Paternalist": - arcology.FSPaternalist = Math.clamp(arcology.FSPaternalist += fsGain, 0, 100); - break; - case "Pastoralist": - arcology.FSPastoralist = Math.clamp(arcology.FSPastoralist += fsGain, 0, 100); - break; - case "Maturity Preferentialist": - arcology.FSMaturityPreferentialist = Math.clamp(arcology.FSMaturityPreferentialist += fsGain, 0, 100); - break; - case "Youth Preferentialist": - arcology.FSYouthPreferentialist = Math.clamp(arcology.FSYouthPreferentialist += fsGain, 0, 100); - break; - case "Body Purist": - arcology.FSBodyPurist = Math.clamp(arcology.FSBodyPurist += fsGain, 0, 100); - break; - case "Slimness Enthusiast": - arcology.FSSlimnessEnthusiast = Math.clamp(arcology.FSSlimnessEnthusiast += fsGain, 0, 100); - break; - case "Slave Professionalism": - arcology.FSSlaveProfessionalism = Math.clamp(arcology.FSSlaveProfessionalism += fsGain, 0, 100); - break; - case "Intellectual Dependency": - arcology.FSIntellectualDependency = Math.clamp(arcology.FSIntellectualDependency += fsGain, 0, 100); - break; - case "Petite Admiration": - arcology.FSPetiteAdmiration = Math.clamp(arcology.FSPetiteAdmiration += fsGain, 0, 100); - break; - case "Statuesque Glorification": - arcology.FSStatuesqueGlorification = Math.clamp(arcology.FSStatuesqueGlorification += fsGain, 0, 100); - break; - } - } + const fsGain = 0.0001 * (milk + (5 * cum)); + FutureSocieties.DecorationBonus(V.dairyDecoration, fsGain); } })(); diff --git a/src/endWeek/saServeThePublic.js b/src/endWeek/saServeThePublic.js index b375f8295923506ae842a94095021e3aef21b82d..8c9154842949a567c4682d988f682d3d3ee6b23d 100644 --- a/src/endWeek/saServeThePublic.js +++ b/src/endWeek/saServeThePublic.js @@ -1260,94 +1260,8 @@ App.SlaveAssignment.serveThePublic = (function() { * */ function applyFSDecoration(slave) { - /* FACILITY DECORATION IMPACTS */ - const fsBeauty = (0.0005 * V.FSSingleSlaveRep * slave.sexAmount); - switch (V.clubDecoration) { - case "Roman Revivalist": - arcology.FSRomanRevivalist += fsBeauty; - break; - case "Aztec Revivalist": - arcology.FSAztecRevivalist += fsBeauty; - break; - case "Egyptian Revivalist": - arcology.FSEgyptianRevivalist += fsBeauty; - break; - case "Edo Revivalist": - arcology.FSEdoRevivalist += fsBeauty; - break; - case "Arabian Revivalist": - arcology.FSArabianRevivalist += fsBeauty; - break; - case "Chinese Revivalist": - arcology.FSChineseRevivalist += fsBeauty; - break; - case "Chattel Religionist": - arcology.FSChattelReligionist += fsBeauty; - break; - case "Degradationist": - arcology.FSDegradationist += fsBeauty; - break; - case "Asset Expansionist": - arcology.FSAssetExpansionist += fsBeauty; - break; - case "Transformation Fetishist": - arcology.FSTransformationFetishist += fsBeauty; - break; - case "Gender Radicalist": - arcology.FSGenderRadicalist += fsBeauty; - break; - case "Repopulation Focus": - arcology.FSRepopulationFocus += fsBeauty; - break; - case "Eugenics": - arcology.FSRestart += fsBeauty; - break; - case "Gender Fundamentalist": - arcology.FSGenderFundamentalist += fsBeauty; - break; - case "Physical Idealist": - arcology.FSPhysicalIdealist += fsBeauty; - break; - case "Hedonistic": - arcology.FSHedonisticDecadence += fsBeauty; - break; - case "Supremacist": - arcology.FSSupremacist += fsBeauty; - break; - case "Subjugationist": - arcology.FSSubjugationist += fsBeauty; - break; - case "Paternalist": - arcology.FSPaternalist += fsBeauty; - break; - case "Pastoralist": - arcology.FSPastoralist += fsBeauty; - break; - case "Maturity Preferentialist": - arcology.FSMaturityPreferentialist += fsBeauty; - break; - case "Youth Preferentialist": - arcology.FSYouthPreferentialist += fsBeauty; - break; - case "Body Purist": - arcology.FSBodyPurist += fsBeauty; - break; - case "Slimness Enthusiast": - arcology.FSSlimnessEnthusiast += fsBeauty; - break; - case "Slave Professionalism": - arcology.FSSlaveProfessionalism += fsBeauty; - break; - case "Intellectual Dependency": - arcology.FSIntellectualDependency += fsBeauty; - break; - case "Petite Admiration": - arcology.FSPetiteAdmiration += fsBeauty; - break; - case "Statuesque Glorification": - arcology.FSStatuesqueGlorification += fsBeauty; - break; - } + const fsBeauty = 0.0005 * slave.sexAmount; + FutureSocieties.DecorationBonus(V.clubDecoration, fsBeauty); } /** diff --git a/src/endWeek/saWhore.js b/src/endWeek/saWhore.js index 36289d69324cf059c4859ce9c1d4c650d139d53a..8b278a575e52119b285bccb81cadf7626608882f 100644 --- a/src/endWeek/saWhore.js +++ b/src/endWeek/saWhore.js @@ -1334,93 +1334,8 @@ App.SlaveAssignment.whore = (function() { */ function applyFSDecoration() { /* FACILITY DECORATION IMPACTS */ - const fsBeauty = (0.0005 * V.FSSingleSlaveRep * beauty); - switch (V.brothelDecoration) { - case "Roman Revivalist": - arcology.FSRomanRevivalist += fsBeauty; - break; - case "Aztec Revivalist": - arcology.FSAztecRevivalist += fsBeauty; - break; - case "Egyptian Revivalist": - arcology.FSEgyptianRevivalist += fsBeauty; - break; - case "Edo Revivalist": - arcology.FSEdoRevivalist += fsBeauty; - break; - case "Arabian Revivalist": - arcology.FSArabianRevivalist += fsBeauty; - break; - case "Chinese Revivalist": - arcology.FSChineseRevivalist += fsBeauty; - break; - case "Chattel Religionist": - arcology.FSChattelReligionist += fsBeauty; - break; - case "Degradationist": - arcology.FSDegradationist += fsBeauty; - break; - case "Asset Expansionist": - arcology.FSAssetExpansionist += fsBeauty; - break; - case "Transformation Fetishist": - arcology.FSTransformationFetishist += fsBeauty; - break; - case "Gender Radicalist": - arcology.FSGenderRadicalist += fsBeauty; - break; - case "Repopulation Focus": - arcology.FSRepopulationFocus += fsBeauty; - break; - case "Eugenics": - arcology.FSRestart += fsBeauty; - break; - case "Gender Fundamentalist": - arcology.FSGenderFundamentalist += fsBeauty; - break; - case "Physical Idealist": - arcology.FSPhysicalIdealist += fsBeauty; - break; - case "Hedonistic": - arcology.FSHedonisticDecadence += fsBeauty; - break; - case "Supremacist": - arcology.FSSupremacist += fsBeauty; - break; - case "Subjugationist": - arcology.FSSubjugationist += fsBeauty; - break; - case "Paternalist": - arcology.FSPaternalist += fsBeauty; - break; - case "Pastoralist": - arcology.FSPastoralist += fsBeauty; - break; - case "Maturity Preferentialist": - arcology.FSMaturityPreferentialist += fsBeauty; - break; - case "Youth Preferentialist": - arcology.FSYouthPreferentialist += fsBeauty; - break; - case "Body Purist": - arcology.FSBodyPurist += fsBeauty; - break; - case "Slimness Enthusiast": - arcology.FSSlimnessEnthusiast += fsBeauty; - break; - case "Slave Professionalism": - arcology.FSSlaveProfessionalism += fsBeauty; - break; - case "Intellectual Dependency": - arcology.FSIntellectualDependency += fsBeauty; - break; - case "Petite Admiration": - arcology.FSPetiteAdmiration += fsBeauty; - break; - case "Statuesque Glorification": - arcology.FSStatuesqueGlorification += fsBeauty; - break; - } + const fsBeauty = 0.0005 * beauty; + FutureSocieties.DecorationBonus(V.brothelDecoration, fsBeauty); } /** diff --git a/src/endWeek/saWorkAGloryHole.js b/src/endWeek/saWorkAGloryHole.js index 4a5dacf8093322fff3e13b6ce70b854005141f3a..18eebdd88eec4f52b8a45c49dd04e9ec44b0824e 100644 --- a/src/endWeek/saWorkAGloryHole.js +++ b/src/endWeek/saWorkAGloryHole.js @@ -309,95 +309,9 @@ App.SlaveAssignment.workAGloryHole = (function() { * */ function applyFSDecoration(slave) { - /* FACILITY DECORATION IMPACTS */ - if (slave.assignment === window.Job.ARCADE && V.arcadeDecoration !== "standard") { - const impact = (0.0001 * V.FSSingleSlaveRep * beauty); - switch (V.arcadeDecoration) { - case "Roman Revivalist": - V.arcologies[0].FSRomanRevivalist += impact; - break; - case "Aztec Revivalist": - V.arcologies[0].FSAztecRevivalist += impact; - break; - case "Egyptian Revivalist": - V.arcologies[0].FSEgyptianRevivalist += impact; - break; - case "Edo Revivalist": - V.arcologies[0].FSEdoRevivalist += impact; - break; - case "Arabian Revivalist": - V.arcologies[0].FSArabianRevivalist += impact; - break; - case "Chinese Revivalist": - V.arcologies[0].FSChineseRevivalist += impact; - break; - case "Repopulation Focus": - V.arcologies[0].FSRepopulationFocus += impact; - break; - case "Eugenics": - V.arcologies[0].FSRestart += impact; - break; - case "Chattel Religionist": - V.arcologies[0].FSChattelReligionist += impact; - break; - case "Degradationist": - V.arcologies[0].FSDegradationist += impact; - break; - case "Asset Expansionist": - V.arcologies[0].FSAssetExpansionist += impact; - break; - case "Transformation Fetishist": - V.arcologies[0].FSTransformationFetishist += impact; - break; - case "Gender Radicalist": - V.arcologies[0].FSGenderRadicalist += impact; - break; - case "Gender Fundamentalist": - V.arcologies[0].FSGenderFundamentalist += impact; - break; - case "Physical Idealist": - V.arcologies[0].FSPhysicalIdealist += impact; - break; - case "Hedonistic": - V.arcologies[0].FSHedonisticDecadence += impact; - break; - case "Supremacist": - V.arcologies[0].FSSupremacist += impact; - break; - case "Subjugationist": - V.arcologies[0].FSSubjugationist += impact; - break; - case "Paternalist": - V.arcologies[0].FSPaternalist += impact; - break; - case "Pastoralist": - V.arcologies[0].FSPastoralist += impact; - break; - case "Maturity Preferentialist": - V.arcologies[0].FSMaturityPreferentialist += impact; - break; - case "Youth Preferentialist": - V.arcologies[0].FSYouthPreferentialist += impact; - break; - case "Body Purist": - V.arcologies[0].FSBodyPurist += impact; - break; - case "Slimness Enthusiast": - V.arcologies[0].FSSlimnessEnthusiast += impact; - break; - case "Slave Professionalism": - V.arcologies[0].FSSlaveProfessionalism += impact; - break; - case "Intellectual Dependency": - V.arcologies[0].FSIntellectualDependency += impact; - break; - case "Petite Admiration": - V.arcologies[0].FSPetiteAdmiration += impact; - break; - case "Statuesque Glorification": - V.arcologies[0].FSStatuesqueGlorification += impact; - break; - } + if (slave.assignment === Job.ARCADE) { + const impact = (0.0001 * beauty); + FutureSocieties.DecorationBonus(V.arcadeDecoration, impact); } } diff --git a/src/endWeek/saWorkTheFarm.js b/src/endWeek/saWorkTheFarm.js index 14a9f87f1e26063fdc2d28cd50662a26851d458c..274cfd76de013a243bc21773a4a585672bae33dd 100644 --- a/src/endWeek/saWorkTheFarm.js +++ b/src/endWeek/saWorkTheFarm.js @@ -558,96 +558,9 @@ App.SlaveAssignment.workTheFarm = function(slave) { // Close Vignettes - // Open Facility Decorations - - if (V.farmyardDecoration !== "standard") { - const fsGain = Math.min(0.0001 * V.FSSingleSlaveRep * (food), 1); - switch (V.farmyardDecoration) { - case "Roman Revivalist": - arcology.FSRomanRevivalist = Math.clamp(arcology.FSRomanRevivalist += fsGain, 0, 100); - break; - case "Aztec Revivalist": - arcology.FSAztecRevivalist = Math.clamp(arcology.FSAztecRevivalist += fsGain, 0, 100); - break; - case "Egyptian Revivalist": - arcology.FSEgyptianRevivalist = Math.clamp(arcology.FSEgyptianRevivalist += fsGain, 0, 100); - break; - case "Edo Revivalist": - arcology.FSEdoRevivalist = Math.clamp(arcology.FSEdoRevivalist += fsGain, 0, 100); - break; - case "Arabian Revivalist": - arcology.FSArabianRevivalist = Math.clamp(arcology.FSArabianRevivalist += fsGain, 0, 100); - break; - case "Chinese Revivalist": - arcology.FSChineseRevivalist = Math.clamp(arcology.FSChineseRevivalist += fsGain, 0, 100); - break; - case "Chattel Religionist": - arcology.FSChattelReligionist = Math.clamp(arcology.FSChattelReligionist += fsGain, 0, 100); - break; - case "Degradationist": - arcology.FSDegradationist = Math.clamp(arcology.FSDegradationist += fsGain, 0, 100); - break; - case "Repopulation Focus": - arcology.FSRepopulationFocus = Math.clamp(arcology.FSRepopulationFocus += fsGain, 0, 100); - break; - case "Eugenics": - arcology.FSRestart = Math.clamp(arcology.FSRestart += fsGain, 0, 100); - break; - case "Asset Expansionist": - arcology.FSAssetExpansionist = Math.clamp(arcology.FSAssetExpansionist += fsGain, 0, 100); - break; - case "Transformation Fetishist": - arcology.FSTransformationFetishist = Math.clamp(arcology.FSTransformationFetishist += fsGain, 0, 100); - break; - case "Gender Radicalist": - arcology.FSGenderRadicalist = Math.clamp(arcology.FSGenderRadicalist += fsGain, 0, 100); - break; - case "Gender Fundamentalist": - arcology.FSGenderFundamentalist = Math.clamp(arcology.FSGenderFundamentalist += fsGain, 0, 100); - break; - case "Physical Idealist": - arcology.FSPhysicalIdealist = Math.clamp(arcology.FSPhysicalIdealist += fsGain, 0, 100); - break; - case "Hedonistic": - arcology.FSHedonisticDecadence = Math.clamp(arcology.FSHedonisticDecadence += fsGain, 0, 100); - break; - case "Supremacist": - arcology.FSSupremacist = Math.clamp(arcology.FSSupremacist += fsGain, 0, 100); - break; - case "Subjugationist": - arcology.FSSubjugationist = Math.clamp(arcology.FSSubjugationist += fsGain, 0, 100); - break; - case "Paternalist": - arcology.FSPaternalist = Math.clamp(arcology.FSPaternalist += fsGain, 0, 100); - break; - case "Pastoralist": - arcology.FSPastoralist = Math.clamp(arcology.FSPastoralist += fsGain, 0, 100); - break; - case "Maturity Preferentialist": - arcology.FSMaturityPreferentialist = Math.clamp(arcology.FSMaturityPreferentialist += fsGain, 0, 100); - break; - case "Youth Preferentialist": - arcology.FSYouthPreferentialist = Math.clamp(arcology.FSYouthPreferentialist += fsGain, 0, 100); - break; - case "Body Purist": - arcology.FSBodyPurist = Math.clamp(arcology.FSBodyPurist += fsGain, 0, 100); - break; - case "Slimness Enthusiast": - arcology.FSSlimnessEnthusiast = Math.clamp(arcology.FSSlimnessEnthusiast += fsGain, 0, 100); - break; - case "Slave Professionalism": - arcology.FSSlaveProfessionalism = Math.clamp(arcology.FSSlaveProfessionalism += fsGain, 0, 100); - break; - case "Intellectual Dependency": - arcology.FSIntellectualDependency = Math.clamp(arcology.FSIntellectualDependency += fsGain, 0, 100); - break; - case "Petite Admiration": - arcology.FSPetiteAdmiration = Math.clamp(arcology.FSPetiteAdmiration += fsGain, 0, 100); - break; - case "Statuesque Glorification": - arcology.FSStatuesqueGlorification = Math.clamp(arcology.FSStatuesqueGlorification += fsGain, 0, 100); - break; - } - } + // Facility Decorations + const fsGain = 0.0001 * food; + FutureSocieties.DecorationBonus(V.farmyardDecoration, fsGain); + return t; }; diff --git a/src/js/futureSocietyJS.js b/src/js/futureSocietyJS.js index cfba77e9bdf49917629d0406c1d60cd714e0ce15..25ae6ddfa38a2932d80225df6830d3044219d7af 100644 --- a/src/js/futureSocietyJS.js +++ b/src/js/futureSocietyJS.js @@ -100,6 +100,7 @@ globalThis.FutureSocieties = (function() { overflowToInfluence: overflowToInfluence, remove: removeFS, DecorationCleanup: DecorationCleanup, + DecorationBonus: FSDecorationBonus, Change: FSChange, ChangePorn: FSChangePorn, HighestDecoration: FSHighestDecoration @@ -438,6 +439,25 @@ globalThis.FutureSocieties = (function() { } } + /** Apply the decoration bonus for a slave working in a facility to the FS + * call as FutureSocieties.DecorationBonus() + * @param {string} decoration - not quoted, just pass it straight in + * @param {number} magnitude - will be multiplied by V.FSSingleSlaveRep + */ + function FSDecorationBonus(decoration, magnitude) { + if (decoration === "standard") { + return; // no bonus + } + + const FSString = decoration.replace(/ /g, ''); // removes spaces + const FSProp = FSString2Property[FSString]; // gets the property name + const arc = V.arcologies[0]; + + if (FSProp && Number.isFinite(arc[FSProp])) { + arc[FSProp] = Math.clamp(arc[FSProp] + magnitude * V.FSSingleSlaveRep, 0, 100); + } + } + /* call as FutureSocieties.Change() */ /* FSString should be in the FSString2Property object above */ function FSChange(FSString, magnitude, bonusMultiplier = 1) {