diff --git a/saveTools/fc_edit_save.py b/saveTools/fc_edit_save.py index 141009769029209d0eab7ab37bd9ecbc0178104a..010d3cc07dd98f3bc855118b59ad1b24f14a86c7 100755 --- a/saveTools/fc_edit_save.py +++ b/saveTools/fc_edit_save.py @@ -77,7 +77,8 @@ IGNORE_IN_SLAVES = [ "counter.birthClient", "counter.birthDegenerate", "counter.birthElite", "counter.birthFutaSis", "counter.birthLab", "counter.birthMaster", "counter.birthOther", "counter.birthSelf", "counter.storedCum", - "criticalDamage", "degeneracy", "fertDrugs", "forcedFertDrugs", "newVag", + "criticalDamage", "badRumors.penetrative", "badRumors.birth", "badRumors.weakness", + "fertDrugs", "forcedFertDrugs", "newVag", "origEye", "physicalImpairment", "pregMood", "refreshment", "refreshmentType", "relationships", "reservedChildren", "reservedChildrenNursery", "rumor", "sexualEnergy", "skill.cumTap", diff --git a/src/data/backwardsCompatibility/backwardsCompatibility.js b/src/data/backwardsCompatibility/backwardsCompatibility.js index 58ef13968743bb42285217d54a90524318c44c5e..46299c5ac54496e6472280c5d0348ce81226c996 100644 --- a/src/data/backwardsCompatibility/backwardsCompatibility.js +++ b/src/data/backwardsCompatibility/backwardsCompatibility.js @@ -2581,7 +2581,9 @@ App.Update.oldVersions = function(node) { newPC.pregSource = V.PC.pregSource; newPC.pregMood = V.PC.pregMood; newPC.labor = V.PC.labor; - newPC.degeneracy = V.PC.degeneracy; + newPC.badRumors.birth = V.PC.badRumors.birth; + newPC.badRumors.penetrative = V.PC.badRumors.penetrative; + newPC.badRumors.weakness = V.PC.badRumors.weakness; newPC.pubicHStyle = V.PC.pubicHStyle; newPC.underArmHStyle = V.PC.underArmHStyle; if (V.PC.dick === 1) { diff --git a/src/data/backwardsCompatibility/datatypeCleanup.js b/src/data/backwardsCompatibility/datatypeCleanup.js index c07d3155236620705c0407aa062bdab948e7987a..e0966cede9cb6995de7a1d06dc6f676c7ddb1b3f 100644 --- a/src/data/backwardsCompatibility/datatypeCleanup.js +++ b/src/data/backwardsCompatibility/datatypeCleanup.js @@ -1663,7 +1663,7 @@ globalThis.PCDatatypeCleanup = (function PCDatatypeCleanup() { PC.need = Math.max(+PC.need, 0) || 0; if (!PC.hasOwnProperty("badRumors")) { PC.badRumors = { - penetrative: PC.degeneracy || 0, + penetrative: PC.degeneracy ?? 0, birth: 0, weakness: 0, } @@ -2176,7 +2176,7 @@ App.Entity.Utils.GenePoolRecordCleanup = (function() { "lastWeeksCashIncome", "lastWeeksRepIncome", "lastWeeksRepExpenses", "lifetimeCashIncome", "lifetimeCashExpenses", "lifetimeRepIncome", "lifetimeRepExpenses", // player stuff - "degeneracy", "refreshment", "refreshmentType", + "degeneracy", "badRumors", "refreshment", "refreshmentType", "relationships", "criticalDamage", "fertKnown", "forcedFertDrugs" diff --git a/src/endWeek/economics/persBusiness.js b/src/endWeek/economics/persBusiness.js index 615b6ce3c341947081d07a3d57e663b914ef9a76..6d6a08d9d88e84da045e81699de396689aa0a3ed 100644 --- a/src/endWeek/economics/persBusiness.js +++ b/src/endWeek/economics/persBusiness.js @@ -211,9 +211,9 @@ App.EndWeek.personalBusiness = function() { r.push(`This week you gave up business opportunities worth ${cashFormat(policies.cost())} to help deserving citizens, <span class="green">burnishing your reputation.</span>`); repX(1000, "personalBusiness"); cashX(forceNeg(policies.cost()), "policies"); - if (V.PC.degeneracy > 1) { + if (getRumors() > 1) { r.push(`This also helps <span class="green">offset any rumors</span> about your private actions.`); - V.PC.degeneracy -= 1; + softenRumors.all(); } } else { r.push(`Money was too tight this week to risk giving up any business opportunities.`); @@ -222,9 +222,9 @@ App.EndWeek.personalBusiness = function() { if (V.policies.goodImageCampaign === 1) { if (V.cash > 5000) { r.push(`This week you paid ${cashFormat(policies.cost())} to have positive rumors spread about you, <span class="green">making you look`); - if (V.PC.degeneracy > 1) { + if (getRumors() > 1) { r.push(`good and weakening existing undesirable rumors.</span>`); - V.PC.degeneracy -= 2; + softenRumors.all(2); } else { r.push(`good.</span>`); } diff --git a/src/endWeek/saDevotion.js b/src/endWeek/saDevotion.js index 4e9ccb7ae6037552de9fc8fd82f6bbc20eb5a345..fe213e8ab323e1146fb705ebc45371be2a86146d 100644 --- a/src/endWeek/saDevotion.js +++ b/src/endWeek/saDevotion.js @@ -715,9 +715,7 @@ App.SlaveAssignment.devotion = function saDevotion(slave) { knockMeUp(PC, App.EndWeek.saVars.freeSexualEnergy, 1, slave.ID); } } - if (V.policies.sexualOpenness === 0) { - PC.degeneracy++; - } + newRumor.penetrative(); } V.PC.deferredNeed -= App.EndWeek.saVars.freeSexualEnergy * 2; if (V.PC.energy < 100) { @@ -868,7 +866,7 @@ App.SlaveAssignment.devotion = function saDevotion(slave) { } } } - if (PC.degeneracy > 2) { + if (getRumors("penetrative") > 2) { if ((canPenetrate(slave) || slave.clit >= 3) && V.policies.sexualOpenness === 0) { if (slave.toyHole !== ToyHole.DICK && slave.skill.penetrative > 60) { r.push(`There are rumors about you enjoying taking it from slaves and`); diff --git a/src/endWeek/saPleaseYou.js b/src/endWeek/saPleaseYou.js index 4b65f0090862eaa8ad942966645a6ae946ef627b..9316f9306a88f2bf1581cc601120d7d1beafb8f7 100644 --- a/src/endWeek/saPleaseYou.js +++ b/src/endWeek/saPleaseYou.js @@ -2808,10 +2808,7 @@ App.SlaveAssignment.pleaseYou = function saPleaseYou(slave) { seX(slave, "penetrative", V.PC, "anal", qualitySex + straponUse); tryKnockMeUp(V.PC, qualitySex, 1, slave); } - if (V.policies.sexualOpenness === 0) { - r.push(`Rumors spread that you <span class="warning">enjoy taking it from slaves.</span>`); - V.PC.degeneracy += 2; - } + r.push(newRumor.penetrative(slave, 2)); } /** @@ -3187,10 +3184,7 @@ App.SlaveAssignment.pleaseYou = function saPleaseYou(slave) { slaveNeed -= ((qualitySex * penetrativePleasure) + (excessSex * penetrativePleasure * 0.5)); } seX(slave, "penetrative", V.PC, "oral", penetrativeUse); - if (V.policies.sexualOpenness === 0) { - r.push(`Rumors spread that you <span class="warning">enjoy taking it from slaves.</span>`); - V.PC.degeneracy += 2; - } + r.push(newRumor.penetrative(slave, 2)); } /** diff --git a/src/npc/interaction/fSuckDick.js b/src/npc/interaction/fSuckDick.js index 8ff299bf770379aeb0cd07603c049d70a3c8e0d6..fa417cac8b27568fd21c1a419fc3b44d1606fbad 100644 --- a/src/npc/interaction/fSuckDick.js +++ b/src/npc/interaction/fSuckDick.js @@ -268,13 +268,7 @@ App.Interact.fSuckDick = function(slave) { r.push(cleanup()); - if (V.policies.sexualOpenness === 0) { - r = []; - r.push(rumors()); - App.Events.addParagraph(node, r); - - V.PC.degeneracy += 1; - } + r.push(newRumor.penetrative(slave)); App.Events.addParagraph(node, r); @@ -287,13 +281,7 @@ App.Interact.fSuckDick = function(slave) { r.push(cleanup()); - if (V.policies.sexualOpenness === 0) { - r = []; - r.push(rumors()); - App.Events.addParagraph(node, r); - - V.PC.degeneracy += 1; - } + r.push(newRumor.penetrative(slave)); App.Events.addParagraph(node, r); @@ -314,13 +302,7 @@ App.Interact.fSuckDick = function(slave) { r.push(cleanup()); - if (V.policies.sexualOpenness === 0) { - r = []; - r.push(rumors()); - App.Events.addParagraph(node, r); - - V.PC.degeneracy += 1; - } + r.push(newRumor.penetrative(slave)); App.Events.addParagraph(node, r); @@ -335,13 +317,7 @@ App.Interact.fSuckDick = function(slave) { r.push(cleanup()); - if (V.policies.sexualOpenness === 0) { - r = []; - r.push(rumors()); - App.Events.addParagraph(node, r); - - V.PC.degeneracy += 1; - } + r.push(newRumor.penetrative(slave)); slave.trust -= 2; slave.devotion -= 5; @@ -403,13 +379,7 @@ App.Interact.fSuckDick = function(slave) { r.push(cleanup()); - if (V.policies.sexualOpenness === 0) { - r = []; - r.push(rumors()); - App.Events.addParagraph(node, r); - - V.PC.degeneracy += 1; - } + r.push(newRumor.penetrative(slave)); App.Events.addParagraph(node, r); return node; @@ -465,13 +435,7 @@ App.Interact.fSuckDick = function(slave) { r.push(cleanup()); - if (V.policies.sexualOpenness === 0) { - r = []; - r.push(rumors()); - App.Events.addParagraph(node, r); - - V.PC.degeneracy += 1; - } + r.push(newRumor.penetrative(slave)); slave.trust += 10; @@ -487,13 +451,7 @@ App.Interact.fSuckDick = function(slave) { r.push(cleanup()); - if (V.policies.sexualOpenness === 0) { - r = []; - r.push(rumors()); - App.Events.addParagraph(node, r); - - V.PC.degeneracy += 1; - } + r.push(newRumor.penetrative(slave)); slave.trust += 2; slave.devotion += 2; @@ -515,13 +473,7 @@ App.Interact.fSuckDick = function(slave) { r.push(cleanup()); - if (V.policies.sexualOpenness === 0) { - r = []; - r.push(rumors()); - App.Events.addParagraph(node, r); - - V.PC.degeneracy += 1; - } + r.push(newRumor.penetrative(slave)); slave.trust += 2; slave.devotion += 2; @@ -564,13 +516,7 @@ App.Interact.fSuckDick = function(slave) { r.push(cleanup()); App.Events.addParagraph(node, r); - if (V.policies.sexualOpenness === 0) { - r = []; - r.push(rumors()); - App.Events.addParagraph(node, r); - - V.PC.degeneracy += 1; - } + r.push(newRumor.penetrative(slave)); slave.devotion += 2; slave.trust += 5; @@ -586,16 +532,12 @@ App.Interact.fSuckDick = function(slave) { r.push(cleanup()); App.Events.addParagraph(node, r); - if (V.policies.sexualOpenness === 0) { - r = []; - r.push(rumors()); - App.Events.addParagraph(node, r); - - V.PC.degeneracy += 1; - } + r.push(newRumor.penetrative(slave)); slave.devotion += 5; slave.trust += 2; + + return node; } else { // Default r.push(`You continue to suck ${him}, stroking ${his} body with one hand, making sure the blowjob is memorable. At one point you feel ${his} member stiffen and ${he} lets you know that ${his} orgasm is imminent. You take one last firm suck before slowly letting the glans out of your mouth and taking the base of ${his} ${dickAdj} member ${slave.dick > 2 ? "with your hand" : "with your forefinger and thumb"}, toying the shaft with your ${lipsLong}, just in time to feel the first contraction.`); r.push(cumFinal()); @@ -623,13 +565,7 @@ App.Interact.fSuckDick = function(slave) { r.push(cleanup()); - if (V.policies.sexualOpenness === 0) { - r = []; - r.push(rumors()); - App.Events.addParagraph(node, r); - - V.PC.degeneracy += 1; - } + r.push(newRumor.penetrative(slave)); slave.trust += 2; slave.devotion += 5; @@ -801,9 +737,4 @@ App.Interact.fSuckDick = function(slave) { return text.join(' '); } - - - function rumors() { - return `Rumors spread that you <span class="reputation dec">enjoy taking it from slaves.</span>`; - } }; diff --git a/src/player/managePersonalAffairs.js b/src/player/managePersonalAffairs.js index d7ebf86d892c7345ad771b24afd4f4290689e80c..a27e2576d15ab36be2ae88ac188881fdcdc498b4 100644 --- a/src/player/managePersonalAffairs.js +++ b/src/player/managePersonalAffairs.js @@ -316,18 +316,22 @@ App.UI.managePersonalAffairs = function() { * @returns {string} the correct rumor flavor text for the players degeneracy level */ function getPlayerRumors() { - if (PC.degeneracy > 100) { + const rumors = getRumors(); + if (rumors > 100) { return `There are severe and devastating rumors about you spreading across the arcology.`; - } else if (PC.degeneracy > 75) { + } else if (rumors > 75) { return `There are severe rumors about you spreading across the arcology.`; - } else if (PC.degeneracy > 50) { + } else if (rumors > 50) { return `There are bad rumors about you spreading across the arcology.`; - } else if (PC.degeneracy > 25) { + } else if (rumors > 25) { return `There are rumors about you spreading across the arcology.`; - } else if (PC.degeneracy > 10) { + } else if (rumors > 10) { return `There are minor rumors about you spreading across the arcology.`; - } else { + } else if (rumors > 1) { return `The occasional rumor about you can be heard throughout the arcology.`; + } else { + return `The are no rumors about you.`; + } } }