diff --git a/js/003-data/policiesData.js b/js/003-data/policiesData.js index fa3258f5bd32b24739a5bc0a47d1c050eead6a1c..48afb0e264384a799258f7c6d6c407f9aa80cf84 100644 --- a/js/003-data/policiesData.js +++ b/js/003-data/policiesData.js @@ -692,7 +692,9 @@ App.Data.Policies.Selection = { App.UI.DOM.makeTextBox( V.customRetirementAge, v => { + Math.clamp(v, 20, 120); V.customRetirementAge = v; + V.retirementAge = v; policy("RetirementPolicies"); }, true @@ -703,8 +705,8 @@ App.Data.Policies.Selection = { return el; }, get activatedText() { return `you have set your arcology's standard retirement age for sex slaves at ${V.retirementAge}.`; }, - onRepeal: function() { V.retirementAge = 45; } - + onRepeal: function() { V.retirementAge = 45; }, + note: "Set age before implementing" } ], "policies.retirement.physicalAgePolicy": [ @@ -719,7 +721,9 @@ App.Data.Policies.Selection = { App.UI.DOM.makeTextBox( V.customRetirementAge, v => { + Math.clamp(v, 20, 120); V.customRetirementAge = v; + V.retirementAge = v; policy("RetirementPolicies"); }, true @@ -730,7 +734,8 @@ App.Data.Policies.Selection = { return el; }, get activatedText() { return `you have set your arcology's standard retirement age for sex slaves at physically ${V.retirementAge}. This policy completely supplants former age retirement policies.`; }, - onRepeal: function() { V.retirementAge = 45; } + onRepeal: function() { V.retirementAge = 45; }, + note: "Set age before implementing" } ], "policies.retirement.fate": [ @@ -786,6 +791,7 @@ App.Data.Policies.Selection = { App.UI.DOM.makeTextBox( V.policies.retirement.sex, v => { + Math.clamp(v, 1, 10000000); V.policies.retirement.sex = v; policy("RetirementPolicies"); }, @@ -817,6 +823,7 @@ App.Data.Policies.Selection = { V.policies.retirement.milk, v => { V.policies.retirement.milk = v; + Math.clamp(v, 1, 100000000); policy("RetirementPolicies"); }, true @@ -846,6 +853,7 @@ App.Data.Policies.Selection = { App.UI.DOM.makeTextBox( V.policies.retirement.cum, v => { + Math.clamp(v, 1, 1000000000); V.policies.retirement.cum = v; policy("RetirementPolicies"); }, @@ -876,6 +884,7 @@ App.Data.Policies.Selection = { App.UI.DOM.makeTextBox( V.policies.retirement.births, v => { + Math.clamp(v, 1, 1000000); V.policies.retirement.births = v; policy("RetirementPolicies"); }, @@ -906,6 +915,7 @@ App.Data.Policies.Selection = { App.UI.DOM.makeTextBox( V.policies.retirement.kills, v => { + Math.clamp(v, 1, 1000000); V.policies.retirement.kills = v; policy("RetirementPolicies"); }, @@ -952,7 +962,12 @@ App.Data.Policies.Selection = { App.UI.DOM.makeTextBox( V.customMenialRetirementAge, v => { + Math.clamp(v, 20, 120); V.customMenialRetirementAge = v; + V.customRetirementAge = Math.clamp(V.customRetirementAge, 20, V.customMenialRetirementAge); + if (V.customMenialRetirementAge < 45) { + V.retirementAge = V.customMenialRetirementAge; + } policy("MenialRetirementPolicies"); }, true diff --git a/src/Mods/SpecialForce/SpecialForce.js b/src/Mods/SpecialForce/SpecialForce.js index 78c3cae50bba06fa9f535fb6486acd7a12bc4cb7..47848580fdb58f9128b59ed9746e71bdd5b740cb 100644 --- a/src/Mods/SpecialForce/SpecialForce.js +++ b/src/Mods/SpecialForce/SpecialForce.js @@ -316,7 +316,10 @@ App.SF.BC = function() { } } - delete V.SF.tour; delete V.SF.Caps; delete V.SF.FS.upgrade; + delete V.SF.tour; delete V.SF.Caps; + if (_.get(V.SF, 'FS.upgrade')) { + delete V.SF.FS.upgrade; + } if (jsDef(V.SF.Squad) && jsDef(V.SF.Squad.Troops)) { V.SF.ArmySize = V.SF.Squad.Troops; diff --git a/src/interaction/policies/policies.tw b/src/interaction/policies/policies.tw index 77b51ac3a3cadeee0acbfe9e99cfbfdf00731a37..6f69991e78460f1d07d1cc6ef925e41eeabaf409 100644 --- a/src/interaction/policies/policies.tw +++ b/src/interaction/policies/policies.tw @@ -16,37 +16,6 @@ <<set $nextLink = "Main">> <</if>> <<set $encyclopedia = "Future Societies">> -<<set $rep = Math.clamp($rep, 0, 20000)>> - -<<set $customMenialRetirementAge = Math.clamp($customMenialRetirementAge, 20, 120)>> -<<if $policies.retirement.menial2Citizen == 1>> - <<set $customRetirementAge = Math.clamp($customRetirementAge, 20, $customMenialRetirementAge)>> - <<if $customMenialRetirementAge < 45>> - <<set $retirementAge = $customMenialRetirementAge>> - <</if>> -<<else>> - <<set $customRetirementAge = Math.clamp($customRetirementAge, 20, 120)>> -<</if>> -<<if $policies.retirement.customAgePolicy == 1>> <<set $retirementAge = $customRetirementAge>> <</if>> -<<if $policies.retirement.physicalAgePolicy == 1>> <<set $retirementAge = $customRetirementAge>> <</if>> - -<<if $policies.retirement.sex > 0>> - <<set $policies.retirement.sex = Math.clamp($policies.retirement.sex, 1, 10000000)>> -<</if>> -<<if $policies.retirement.milk > 0>> - <<set $policies.retirement.milk = Math.clamp($policies.retirement.milk, 1, 100000000)>> -<</if>> -<<if $policies.retirement.cum > 0>> - <<set $policies.retirement.cum = Math.clamp($policies.retirement.cum, 1, 1000000000)>> -<</if>> -<<if $policies.retirement.births > 0>> - <<set $policies.retirement.births = Math.clamp($policies.retirement.births, 1, 1000000)>> -<</if>> -<<if $policies.retirement.kills > 0>> - <<set $policies.retirement.kills = Math.clamp($policies.retirement.kills, 1, 1000000)>> -<</if>> -<<if $HeadGirl>> <<setLocalPronouns $HeadGirl>> <</if>> - <<run App.UI.tabbar.handlePreSelectedTab($tabChoice.policies)>> <p class="scene-intro"> diff --git a/src/js/statsChecker/statsChecker.js b/src/js/statsChecker/statsChecker.js index 9ada0875804b82605b5d63e9b4052e1a51fe67ce..f8dc76f97a14a81786ba18c43710ce045ef1a540 100644 --- a/src/js/statsChecker/statsChecker.js +++ b/src/js/statsChecker/statsChecker.js @@ -251,22 +251,22 @@ globalThis.SlaveStatsChecker = (function() { */ globalThis.isSlim = function(slave) { let slim = false; - const ArcologyZero = V.arcologies[0]; + const arcology = V.arcologies[0]; - if (ArcologyZero.FSSlimnessEnthusiastLaw === 1) { + if (arcology.FSSlimnessEnthusiastLaw === 1) { return (slimLawPass(slave) === 1); } if ((slave.boobs < 500) && (slave.butt < 3)) { - if ((slave.muscles <= 30) && (ArcologyZero.FSPhysicalIdealist === "unset") && (slave.weight <= 10) && (ArcologyZero.FSHedonisticDecadence === "unset")) { + if ((slave.muscles <= 30) && (arcology.FSPhysicalIdealist === "unset") && (slave.weight <= 10) && (arcology.FSHedonisticDecadence === "unset")) { slim = true; - } else if (ArcologyZero.FSPhysicalIdealist !== "unset") { - if ((ArcologyZero.FSPhysicalIdealistStrongFat === 1) && (slave.weight <= 30)) { + } else if (arcology.FSPhysicalIdealist !== "unset") { + if ((arcology.FSPhysicalIdealistStrongFat === 1) && (slave.weight <= 30)) { slim = true; } else if (slave.weight <= 10) { slim = true; } - } else if ((ArcologyZero.FSHedonisticDecadence !== "unset") && (slave.weight <= 30)) { - if (ArcologyZero.FSHedonisticDecadenceStrongFat === 1) { + } else if ((arcology.FSHedonisticDecadence !== "unset") && (slave.weight <= 30)) { + if (arcology.FSHedonisticDecadenceStrongFat === 1) { slim = true; } else if (slave.muscles <= 30) { slim = true; @@ -285,6 +285,7 @@ globalThis.genderLawPass = function(slave) { let genderLawPass = 1; const arcology = V.arcologies[0]; + if (arcology.FSPhysicalIdealist === "unset" && arcology.FSHedonisticDecadenceStrongFat === 0 && slave.muscles > 30) { /* muscle check */ genderLawPass = 0; @@ -315,14 +316,14 @@ globalThis.genderLawPass = function(slave) { */ globalThis.slimLawPass = function(slave) { let slimLawPass = 0; - const ArcologyZero = V.arcologies[0]; + const arcology = V.arcologies[0]; - if (ArcologyZero.FSSlimnessEnthusiastLaw === 1) { + if (arcology.FSSlimnessEnthusiastLaw === 1) { if ((slave.boobs < 300) && (slave.butt <= 1) && (slave.waist <= 10)) { - if ((ArcologyZero.FSPhysicalIdealist === "unset") && (ArcologyZero.FSHedonisticDecadenceStrongFat === 0) && (slave.muscles > 30)) { + if ((arcology.FSPhysicalIdealist === "unset") && (arcology.FSHedonisticDecadenceStrongFat === 0) && (slave.muscles > 30)) { /* muscle check*/ slimLawPass = 0; - } else if ((ArcologyZero.FSHedonisticDecadence !== "unset") || (ArcologyZero.FSPhysicalIdealistStrongFat === 1)) { + } else if ((arcology.FSHedonisticDecadence !== "unset") || (arcology.FSPhysicalIdealistStrongFat === 1)) { slimLawPass = 1; /* weight check*/ if (slave.weight > 30) { @@ -345,7 +346,7 @@ globalThis.slimLawPass = function(slave) { * @returns {boolean} */ globalThis.heightPass = function(slave) { - let arcology = V.arcologies[0]; + const arcology = V.arcologies[0]; if (arcology.FSPetiteAdmiration !== "unset") { if (arcology.FSPetiteAdmirationLaw2 === 1) { @@ -584,6 +585,8 @@ globalThis.isStupid = function(slave) { * @returns {boolean} Whether the slave is a part of the "superior" race */ globalThis.isSuperiorRace = function(slave) { + const arcology = V.arcologies[0]; + if (!slave || arcology.FSSupremacist === "unset") { return null; } else { @@ -599,6 +602,8 @@ globalThis.isSuperiorRace = function(slave) { * @returns {boolean} Whether the slave is a part of the "inferior" race */ globalThis.isInferiorRace = function(slave) { + const arcology = V.arcologies[0]; + if (!slave || arcology.FSSubjugationist === "unset") { return null; } else { diff --git a/src/npc/descriptions/genericDescriptions.js b/src/npc/descriptions/genericDescriptions.js new file mode 100644 index 0000000000000000000000000000000000000000..35706f785b18f403f358e1034730369d3eb7ab86 --- /dev/null +++ b/src/npc/descriptions/genericDescriptions.js @@ -0,0 +1,17 @@ +/** + * @example const beautiful = beautiful(slave); `The slave's ${beautiful} face.` + * @param {App.Entity.SlaveState} slave + * @returns {string} + */ +globalThis.beautiful = function(slave) { + return slave.genes === "XX" ? `beautiful` : `handsome`; +}; + +/** + * @example const pretty = pretty(slave); `The slave's ${pretty} face.` + * @param {App.Entity.SlaveState} slave + * @returns {string} + */ +globalThis.pretty = function(slave) { + return slave.genes === "XX" ? `pretty` : `good-looking`; +}; diff --git a/src/pregmod/reMaleCitizenHookup.tw b/src/pregmod/reMaleCitizenHookup.tw index e1b36899be8d5896db1c6a4367b5ee96d0d7ba02..1e98d3871f96f0e16cae5ca729a9abae2c57ce9e 100644 --- a/src/pregmod/reMaleCitizenHookup.tw +++ b/src/pregmod/reMaleCitizenHookup.tw @@ -264,9 +264,9 @@ He's clearly attracted to you; even the most consummate actor would have difficu an inhumanly enormous ass to counterbalance those enormous balls and a semi-hard cock, unable to become fully erect. You have to struggle to get him onto your bed. You tease him as you remove your evening dress, crawl over him and <<if $PC.newVag == 1>> impale yourself on his monster shaft as far as you can, quivering in joy at its girth filling you. - <<elseif $PC.vigina > 3>> + <<elseif $PC.vagina > 3>> impale yourself on his monster shaft as far as you can, quivering in joy at its girth filling you like nothing does lately. - <<elseif $PC.vigina > 2>> + <<elseif $PC.vagina > 2>> impale yourself on his monster shaft as far as you can, quivering in joy at how full you are. <<elseif $PC.vagina > 1>> barely manage to get his cockhead into your pussy. diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw index bd4f5cf450da78bab847c39c628d67fa52c8d107..73b835ea8fc7d7109a1789bacf07cb526c46dd35 100644 --- a/src/uncategorized/saLongTermEffects.tw +++ b/src/uncategorized/saLongTermEffects.tw @@ -8075,7 +8075,7 @@ <</if>> <</if>> <<else>> - <<if (_actualBreastSize > 30000>> + <<if _actualBreastSize > 30000>> <<if ($slaves[$i].assignment != "work in the dairy") || ($dairyRestraintsSetting < 2) || $arcologies[0].FSAssetExpansionistResearch == 0>> <<if ($slaves[$i].drugs != "breast injections" && $slaves[$i].drugs != "intensive breast injections" && $arcologies[0].FSAssetExpansionistResearch == 0)>> <<if $slaves[$i].bellyPreg < 300000 && $slaves[$i].hormoneBalance < 300 && _gigantomastiaMod != 3>>