diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt index 91996f10379462c4436e663ad9e1c16c944aca24..b687a202446d14b24bb41dfff67446042f9d54f2 100644 --- a/devNotes/twine JS.txt +++ b/devNotes/twine JS.txt @@ -35231,3 +35231,1240 @@ window.FacilityNameCleanup = function FacilityNameCleanup() { V.farmyardName = V.farmyardName || "the Farmyard"; V.farmyardNameCaps = V.farmyardNameCaps || "The Farmyard"; }; + +/*:: Beauty [script]*/ + +window.Beauty = (function() { + "use strict"; + let V, arcology, beauty; + + function Beauty(slave) { + V = State.variables; + arcology = V.arcologies[0]; + modScore(slave); + + beauty = 120; + calcInitBeauty(slave); + if (slave.fuckdoll === 0) { + beauty += 30; + calcFaceBeauty(slave); + calcTeethBeauty(slave); + calcModBeauty(slave); + calcCosmeticsBeauty(slave); + calcFSNotFuckdollBeauty(slave); + calcMiscNotFuckdollBeauty(slave); + } + if (slave.dick > 0) { + calcDickBeauty(slave); + } + if (slave.balls > 0) { + calcBallsBeauty(slave); + } + calcButtBeauty(slave); + calcHipsBeauty(slave); + calcBoobsBeauty(slave); + calcWeightBeauty(slave); + calcMusclesBeauty(slave); + calcBodyHairBeauty(slave); + calcImplantBeauty(slave); + if (arcology.FSRepopulationFocus > 40) { + calcRepopulationPregBeauty(slave); + } else if (arcology.FSRestart > 40) { + calcRestartPregBeauty(slave); + } + if (arcology.FSGenderRadicalistLawFuta !== 0) { + calcFutaLawBeauty(slave); + } + calcBodyProportionBeauty(slave); + calcVoiceBeauty(slave); + if (slave.amp !== 0) { + calcLimbsBeauty(slave); + } + calcPubertyBeauty(slave); + calcFSMiscBeauty(slave); + + calcPurityBeauty(slave); + calcPhysiqueBeauty(slave); + if (arcology.FSSlimnessEnthusiastLaw === 1) { + calcSlimBeauty(slave); + } + if (arcology.FSGenderFundamentalistLawBeauty + arcology.FSGenderRadicalistLawBeauty > 0) { + calcGenderLawBeauty(slave); + } + + calcMultipliersBeauty(slave); + beauty = Math.max(1, Math.trunc(0.5*beauty)); + + V.beauty = beauty; + }; + + function calcInitBeauty(slave) { + beauty -= slave.waist/20; + beauty -= slave.muscles/30; + beauty += slave.lips/10; + beauty += slave.clit; + beauty += (slave.height-160)/10; + beauty += 2*slave.hips; + beauty -= 3*slave.visualAge; + if (slave.anus > 3) { + beauty -= 10 + (slave.anus*2); /*-20*/ + } + if (slave.vagina > 3) { + beauty -= 10 + (slave.vagina*2); /*-20*/ + } + + }; + + function calcFaceBeauty(slave) { + beauty += slave.face/5; + switch (slave.faceShape) { + case "masculine": + if (arcology.FSGenderRadicalist !== "unset") { + beauty -= (2 - (arcology.FSGenderRadicalist/25))*(slave.face/30); + } else if (arcology.FSGenderFundamentalist !== "unset") { + beauty -= (2 + (arcology.FSGenderFundamentalist/25))*(slave.face/30); + } else { + beauty -= 2*(slave.face/30); + } + break; + case "androgynous": + if (arcology.FSGenderRadicalist !== "unset") { + beauty += 2 - ((1 - (arcology.FSGenderRadicalist/25))*(slave.face/30)); + } else if (arcology.FSGenderFundamentalist !== "unset") { + beauty += 2 - ((1 + (arcology.FSGenderFundamentalist/25))*(slave.face/30)); + } else { + beauty += 2 - (slave.face/30); + } + break; + case "exotic": + beauty += 2*(slave.face/30); + break; + case "sensual": + beauty += 2 + (slave.face/30); + break; + case "cute": + beauty += 8/3; + break; + } + }; + + function calcTeethBeauty(slave) { + switch (slave.teeth) { + case "crooked": + beauty -= 3; + break; + case "braces": + case "cosmetic braces": + if (slave.visualAge > 14 && slave.visualAge < 18) { + beauty += 1; + } + break; + case "removable": + case "pointy": + case "baby": + case "mixed": + beauty -= 1; + break; + } + }; + + function calcModBeauty(slave) { + if (arcology.FSTransformationFetishist > 20 || arcology.FSDegradationist > 20) { + if (V.modScore > 15 || (V.piercingScore > 8 && V.tatScore > 5)) { + beauty += 8 + (V.modScore*0.25); + } else if (V.modScore > 7) { + beauty += V.modScore - 7; + } + } else if (arcology.FSBodyPurist > 20 || arcology.FSPaternalist > 20) { + if (V.modScore <= 7) { + beauty += 10; + } else { + beauty += 15 - V.modScore; + } + } else { + if (V.modScore <= 7) { + beauty += V.modScore; + } else if (V.modScore > 15 || (V.piercingScore > 8 && V.tatScore > 5)) { + beauty += 11; + } else { + beauty += 7 + (0.5*(V.modScore - 7)); + } + } + }; + + function calcCosmeticsBeauty(slave) { + if (slave.brand !== 0) { + if (V.rep > 10000) { + beauty += 1; + } else if (V.rep < 5000) { + beauty -= 1; + } + } + if (slave.minorInjury !== 0) { + beauty -= 2; + } + if (slave.cSec === 1) { + beauty -= 2; + } + if (slave.nails > 0) { + beauty += 1; + } + if (slave.makeup > 0) { + beauty += 1; + } + switch (slave.markings) { + case "beauty mark": + if (slave.face > 40) { + beauty += 6; + } else if (slave.face < -10) { + beauty -= 6; + } + break; + case "birthmark": + if (slave.prestige > 0 || slave.pornPrestige > 1) { + beauty += 4; + } else { + beauty -= 4; + } + break; + case "freckles": + case "heavily freckled": + if (slave.skin === "pale" || slave.skin === "fair") { + beauty += 2; + if (slave.hColor === "red") { + beauty += 2; + } + } + break; + } + }; + + function calcFSNotFuckdollBeauty(slave) { + if (arcology.FSSupremacist !== "unset") { + if (slave.race === arcology.FSSupremacistRace) { + beauty += (arcology.FSSupremacist/3) + (arcology.FSSupremacistLawME*10); + } + } + if (arcology.FSSubjugationist !== "unset") { + if (slave.race === arcology.FSSubjugationistRace) { + beauty -= (arcology.FSSubjugationist/2) - (arcology.FSSubjugationistLawME*10); + } + } + if (arcology.FSDegradationist !== "unset") { + beauty -= (arcology.FSDegradationist/10)*((slave.intelligence + slave.intelligenceImplant)/20); + } + if (arcology.FSGenderFundamentalistLawBimbo === 1) { + beauty -= (slave.intelligence + slave.intelligenceImplant)/2; + } + if (arcology.FSYouthPreferentialist !== "unset") { + beauty += (30 - slave.visualAge)/(30 - V.minimumSlaveAge)*((arcology.FSYouthPreferentialist/2) + (arcology.FSYouthPreferentialistLaw*10)); /*max 60*/ + } else if (arcology.FSMaturityPreferentialist !== "unset") { + if (V.retirementAge > 30) { + beauty += (30 - slave.visualAge)/(30 - V.retirementAge)*((arcology.FSMaturityPreferentialist/2) + (arcology.FSMaturityPreferentialistLaw*10)); /*max 60, problems if retirementAge is 30 or under*/ + } + } + if (arcology.FSBodyPurist > 20) { /*bonus for virgin slaves*/ + if (slave.vagina === 0 && slave.vaginalCount === 0) { + beauty += 30*(arcology.FSBodyPurist/100); + } + if (slave.anus === 0 && slave.analCount === 0) { + beauty += 30*(arcology.FSBodyPurist/100); + } + } + if (arcology.FSEdoRevivalist !== "unset") { + if (slave.nationality === "Japanese" || slave.nationality === "Edo Revivalist") { + beauty += arcology.FSEdoRevivalist/2; + } else if (slave.race === "asian") { + beauty += arcology.FSEdoRevivalist/5; + } else { + beauty -= arcology.FSEdoRevivalist/4; + } + if (V.language === "Japanese" && canTalk(slave)) { + if (slave.accent > 1) { + beauty -= arcology.FSEdoRevivalist/2; + } else if (slave.accent > 0) { + beauty -= arcology.FSEdoRevivalist/5; + } else { + beauty += arcology.FSEdoRevivalist/10; + } + } + } else if (arcology.FSChineseRevivalist !== "unset") { + if (slave.nationality === "Chinese" || slave.nationality === "Ancient Chinese Revivalist") { + beauty += arcology.FSChineseRevivalist/2; + } else if (slave.race === "asian") { + beauty += arcology.FSChineseRevivalist/5; + } else { + beauty -= arcology.FSChineseRevivalist/4; + } + if (V.language === "Chinese" && canTalk(slave)) { + if (slave.accent > 1) { + beauty -= arcology.FSChineseRevivalist/2; + } else if (slave.accent > 0) { + beauty -= arcology.FSChineseRevivalist/5; + } else { + beauty += arcology.FSChineseRevivalist/10; + } + } + } + }; + + function calcMiscNotFuckdollBeauty(slave) { + beauty += Math.min(slave.health, 100)/5; + beauty += slave.voice; + beauty += (slave.intelligence + slave.intelligenceImplant)/10; + beauty += slave.entertainSkill/10; + beauty += slave.whoreSkill/10; + if (setup.entertainmentCareers.includes(slave.career)) { + beauty += 20; + } else if (V.week - slave.weekAcquired >= 20 && slave.entertainSkill >= 100) { + beauty += 10; + } + if (slave.race === "white" && slave.origRace === "white") { + beauty += 4; + } else if (slave.race === "white") { + beauty += 2; + } + }; + + function calcDickBeauty(slave) { + if (arcology.FSAssetExpansionist > 20 && arcology.FSGenderFundamentalist === "unset") { + if (slave.dick >= 20) { + beauty += 17 + (slave.dick*(arcology.FSAssetExpansionist/500)); /*23*/ + } else if (slave.dick >= 10) { + beauty += 10 + (slave.dick*(arcology.FSAssetExpansionist/300)); /*16.3*/ + } else if (slave.dick > 6) { + beauty += slave.dick*(1 + (arcology.FSAssetExpansionist/100)); /*10*/ + } + } else if (arcology.FSGenderFundamentalist !== "unset") { + if (slave.dick > 0) { + beauty += 3 - slave.dick; + } + } else if (arcology.FSGenderRadicalist !== "unset") { + if (slave.dick > 20) { + beauty += 20 + (slave.dick*(arcology.FSGenderRadicalist/400)); /*27.5*/ + } else if (slave.dick >= 10) { + beauty += 10 + (slave.dick*(arcology.FSGenderRadicalist/200)); /*20*/ + } else if (slave.dick > 0) { + beauty += slave.dick*(1 + (arcology.FSGenderRadicalist/100)); /*10*/ + } + } else { + beauty -= 2*slave.dick; + } + }; + + function calcBallsBeauty(slave) { + if (arcology.FSAssetExpansionist > 20 && arcology.FSGenderFundamentalist === "unset") { + if (slave.balls > 100) { + beauty += 41 + (slave.balls*(arcology.FSAssetExpansionist/500)); /*66*/ + } else if (slave.balls > 80) { + beauty += 16 + (slave.balls*(arcology.FSAssetExpansionist/400)); /*41*/ + } else if (slave.balls > 60) { + beauty += 6 + (slave.balls*(arcology.FSAssetExpansionist/800)); /*16*/ + } else if (slave.balls > 10) { + beauty += slave.balls*((arcology.FSAssetExpansionist/1000)); /*6*/ + } + } else if (arcology.FSGenderFundamentalist !== "unset") { + if (slave.scrotum > 0) { + beauty -= slave.balls*(1 + (arcology.FSGenderFundamentalist/200)); + } + } else if (arcology.FSGenderRadicalist !== "unset") { + if (slave.scrotum > 0) { + if (slave.balls > 100) { + beauty += 40 + (slave.balls*(arcology.FSGenderRadicalist/2000)); /*46.25*/ + } else if (slave.balls > 60) { + beauty += 30 + (slave.balls*(arcology.FSGenderRadicalist/1000)); /*40*/ + } else if (slave.balls > 10) { + beauty += 15 + (slave.balls*(arcology.FSGenderRadicalist/400)); /*30*/ + } else { + beauty += slave.balls*(1 + (arcology.FSGenderRadicalist/200)); /*15*/ + } + } + } else { + if (slave.scrotum > 0) { + beauty -= slave.balls; + } + } + if (arcology.FSRestart !== "unset") { /* Eugenics does not like slaves having working balls */ + if (slave.ballType === "human") { + beauty -= slave.balls*(1 + (arcology.FSRestart/100)); + } + } + }; + + function calcButtBeauty(slave) { + if (slave.butt <= 10) { + beauty += 1.5*slave.butt; /*max 15*/ + } else { + beauty += 15 + (slave.butt/4); /*max 20*/ + } + if ((arcology.FSTransformationFetishist > 20 && arcology.FSSlimnessEnthusiast === "unset") || arcology.FSAssetExpansionist > 20) { + if (slave.butt <= 2) { + beauty += 2*(slave.butt - 1); /*2*/ + } else if (slave.butt <= 4) { + beauty += 2 + 1.5*(slave.butt - 2); /*5*/ + } else if (slave.butt <= 10) { + beauty += 5 + 1*(slave.butt - 4); /*11*/ + } else { + beauty += 7 + 0.5*(slave.butt - 5); /*14.5*/ + } /* maybe buff butts? */ + } else if (arcology.FSSlimnessEnthusiast > 20) { + if (slave.butt <= 3) { + beauty += 12 + 3*(slave.butt - 1); /*18 buff if asses get buffed*/ + } else if (slave.butt <= 5) { + beauty += 9; + } else { + beauty -= 10 + 3*slave.butt; /*-70*/ + } + } else { + if (slave.butt <= 2) { + beauty += 2*(slave.butt-1); /*2*/ + } else if (slave.butt <= 4) { + beauty += 2 + (1.5*(slave.butt - 2)); /*5*/ + } else if (slave.butt <= 8) { + beauty += 2 + (1.5*(slave.butt - 2)); /*11*/ + } else { + beauty += 9; + } + } + if (arcology.FSTransformationFetishist > 20) { /* the cost of using AE's values */ + if (arcology.FSSlimnessEnthusiast !== "unset") { + if (slave.butt >= 3) { + if (slave.buttImplant/slave.butt < 0.25) { + beauty -= 2*(slave.butt - 1) + 10; + } + } + } else { + if (slave.butt >= 6) { + if (slave.buttImplant/slave.butt < 0.50) { + beauty -= (1.5*slave.butt) + 6; /* will get nasty at huge sizes */ + } + } + } + } + }; + + function calcHipsBeauty(slave) { /* butts in general may need buffs */ + switch (slave.hips) { + case -2: + if (slave.butt > 2) { + if (arcology.FSTransformationFetishist === "unset" && arcology.FSHedonisticDecadence === "unset") { + beauty += 2 - slave.butt; + } else { + beauty += 1; + } + } else { + beauty += 1; + } + break; + case -1: + if (slave.butt > 4) { + if (arcology.FSTransformationFetishist === "unset" && arcology.FSHedonisticDecadence === "unset") { + beauty += 4 - slave.butt; + } else { + beauty += 1; + } + } else { + beauty += 1; + } + break; + case 0: + if (slave.butt > 6) { + if (arcology.FSTransformationFetishist === "unset" && arcology.FSHedonisticDecadence === "unset") { + beauty += 6 - slave.butt; + } else { + beauty += 1; + } + } else if (slave.butt <= 1) { + beauty += slave.butt - 2; + } else { + beauty += 1; + } + break; + case 1: + if (slave.butt > 8) { + if (arcology.FSTransformationFetishist === "unset" && arcology.FSHedonisticDecadence === "unset") { + beauty += 8 - slave.butt; + } else { + beauty += 1; + } + } else if (slave.butt <= 2) { + beauty += slave.butt - 3; + } else { + beauty += 1; + } + break; + case 2: + if (slave.butt <= 3) { + beauty += slave.butt - 4; + } else { + beauty += 1; + } + break; + case 3: + if (slave.butt <= 8) { + beauty += slave.butt - 8; + } else { + beauty += 1; + } + break; + } + }; + + function calcBoobsBeauty(slave) { + if ((arcology.FSTransformationFetishist > 20 && arcology.FSSlimnessEnthusiast === "unset") || arcology.FSAssetExpansionist > 20) { + if (slave.boobs <= 500) { + beauty += 0.02*(slave.boobs - 250); /*5*/ + } else if (slave.boobs <= 1500) { + beauty += 5 + 0.015*(slave.boobs - 500); /*20*/ + } else if (slave.boobs <= 3000) { + beauty += 20 + 0.01*(slave.boobs - 1500); /*42.5*/ + } else if (slave.boobs <= 25000) { + beauty += 50 + 0.005*(slave.boobs - 3000); /*160 - this might need to be lowered. Maybe drop the 50? Otherwise break it down more.*/ + } else { + beauty += 145 + 0.001*(slave.boobs - 10000); /* 185 */ + } + } else if (arcology.FSSlimnessEnthusiast > 20) { + if (slave.boobs <= 500) { + beauty += 0.08*(slave.boobs); /*40 - buff me to be in line with higher end asset exp*/ + } else if (slave.boobs <= 1000) { + beauty += 10; + } else if (slave.boobs <= 3000) { + beauty += 5; + } else { + beauty -= 5 + 0.005*(slave.boobs - 3000); /*-110*/ + } + } else { + if (slave.boobs <= 1200) { + beauty += 0.02*(slave.boobs - 200); /*20*/ + } else if (slave.boobs <= 2400) { + beauty += 20 + (0.01*(slave.boobs - 1200)); /*32*/ + } else if (slave.boobs <= 3600) { + beauty += 32 + (0.005*(slave.boobs - 2400)); /*38*/ + } else if (slave.boobs <= 10000) { + beauty += 38; + } else if (slave.boobs <= 25000) { + beauty += 30; + } else { + beauty += 20; + } + } + if (arcology.FSTransformationFetishist > 20) { /* the cost of using AE's values */ + if (arcology.FSSlimnessEnthusiast !== "unset") { + if (slave.boobs >= 400) { + if (slave.boobs >= 10000) { + if (slave.boobsImplant/slave.boobs < 0.75) { + beauty -= (0.05*slave.boobs) + 10; + } + } else if (slave.boobs >= 2000) { + if (slave.boobsImplant/slave.boobs < 0.50) { + beauty -= (0.05*slave.boobs) + 10; + } + } else if (slave.boobs >= 1000) { + if (slave.boobsImplant/slave.boobs < 0.25) { + beauty -= (0.05*slave.boobs) + 10; + } + } else { + if (slave.boobsImplant/slave.boobs < 0.10) { + beauty -= (0.05*slave.boobs) + 10; + } + } + } + } else { + if (slave.boobs >= 600) { + if (slave.boobs >= 10000) { + if (slave.boobsImplant/slave.boobs < 0.75) { + beauty -= 30 + (0.005*slave.boobs); /* will get nasty at huge sizes */ + } + } else if (slave.boobs >= 2000) { + if (slave.boobsImplant/slave.boobs < 0.50) { + beauty -= 30 + (0.005*slave.boobs); /* will get nasty at huge sizes */ + } + } else if (slave.boobs >= 1000) { + if (slave.boobsImplant/slave.boobs < 0.25) { + beauty -= 30 + (0.005*slave.boobs); /* will get nasty at huge sizes */ + } + } else { + if (slave.boobsImplant/slave.boobs < 0.10) { + beauty -= 30 + (0.005*slave.boobs); /* will get nasty at huge sizes */ + } + } + } + } + } + if (slave.boobs > 250) { + if (slave.boobShape === "perky") { + beauty += 6; + } else if (slave.boobShape === "torpedo-shaped") { + beauty += 6; + } else if (slave.boobShape === "downward-facing") { + beauty -= 4; + } else if (slave.boobShape === "saggy") { + beauty -= 4; + } + } + if (slave.nipples === "huge") { + beauty += 4; + } else if (slave.nipples === "inverted") { + beauty += 2; + } else if (slave.nipples === "puffy") { + beauty += 2; + } else if (slave.nipples === "tiny") { + beauty -= 2; + } else if (slave.nipples === "fuckable") { + if (arcology.FSTransformationFetishist !== "unset") { + beauty += arcology.FSTransformationFetishist/10; + } + } + }; + + function calcWeightBeauty(slave) { + if (arcology.FSHedonisticDecadence > 20) { + if (slave.weight < -95) { + beauty += -70 + (slave.weight/10); /*-80*/ + } else if (slave.weight < -30) { + beauty += -30 + (slave.weight/3); /*-61*/ + } else if (slave.weight < -10) { + beauty += (slave.weight); /*-30*/ + } else if (slave.weight <= 10) { + /* no effect */ + } else if (slave.weight <= 30) { + beauty += (slave.weight/2); /*15*/ + } else if (slave.weight <= 95) { + beauty += 15 + (slave.weight/7); /*28.5*/ + } else if (slave.weight <= 130) { + beauty += 28 + (slave.weight/10); /*41*/ + } else if (slave.weight <= 160) { + beauty += 42 + (slave.weight/20); /*50*/ + } else if (slave.weight <= 190) { + beauty += 50 - (slave.weight/25); /*42.5*/ + } else { + beauty += 40 - (slave.weight/20); /*30*/ + } + } else { + if (slave.weight > 130) { + beauty -= Math.abs(slave.weight)/5; + } else if (slave.hips === 3) { + if (slave.weight < -10) { + beauty -= Math.abs(slave.weight)/10; + } + } else if (slave.hips === 2) { + if (slave.weight > 95) { + beauty -= Math.abs(slave.weight)/15; + } else if (slave.weight < -30) { + beauty -= Math.abs(slave.weight)/10; + } + } else if (slave.hips === -2) { + if (slave.weight < -95 || slave.weight > 30) { + beauty -= Math.abs(slave.weight)/10; + } + } else { + if (Math.abs(slave.weight) > 30) { + beauty -= Math.abs(slave.weight)/10; + } + } + } + if (arcology.FSPhysicalIdealist !== "unset") { + if (arcology.FSPhysicalIdealistStrongFat === 1) { + if (slave.weight > 10 && slave.weight <= 130) { + beauty += slave.weight*(arcology.FSPhysicalIdealist/200); /*65*/ + } else { + beauty -= Math.abs(slave.weight)/2; + } + } + } + }; + + function calcMusclesBeauty(slave) { + if (arcology.FSPhysicalIdealist !== "unset") { + if (arcology.FSPhysicalIdealistLaw === 1) { + if (Math.abs(slave.weight) <= 30 && slave.health >= 20 && slave.muscles >= 20 && slave.muscles <= 50) { + beauty += (slave.muscles + (Math.min(slave.health,300)/5))*(arcology.FSPhysicalIdealist/100); + } else { + beauty -= 30; + } + } else { + if (slave.muscles > 30 || slave.muscles <= -5) { + beauty += slave.muscles*(arcology.FSPhysicalIdealist/120); /*+-83*/ + } + } + } else if (arcology.FSHedonisticDecadence !== "unset") { + if (slave.muscles < -10) { + beauty += Math.abs(slave.muscles)*(arcology.FSHedonisticDecadence/160); /*62.5*/ + } else if (slave.muscles > 5) { + if (arcology.FSHedonisticDecadenceStrongFat === 1) { + beauty += slave.muscles*(arcology.FSHedonisticDecadence/200); /*50*/ + } else { + beauty -= slave.muscles*(arcology.FSHedonisticDecadence/200); /*-50*/ + } + } + } + }; + + function calcBodyHairBeauty(slave) { + if (slave.physicalAge < 11) { + beauty += 4; + } else if (slave.physicalAge >= 13) { + switch (slave.underArmHStyle) { + case "hairless": + case "bald": + case "waxed": + case "shaved": + beauty += 2; + break; + case "bushy": + if (arcology.FSBodyPurist > 0) { + beauty += 4; + } else { + beauty -= 2; + } + break; + } + switch (slave.pubicHStyle) { + case "hairless": + case "bald": + case "waxed": + beauty += 2; + break; + case "bushy": + if (arcology.FSBodyPurist > 0) { + beauty += 2; + } else { + beauty -= 4; + } + break; + case "bushy in the front and neat in the rear": + if (arcology.FSBodyPurist > 0) { + beauty += 4; + } else { + beauty -= 2; + } + break; + case "very bushy": + if (arcology.FSBodyPurist > 0) { + beauty += 2; + } else { + beauty -= 6; + } + break; + } + } + }; + + function calcImplantBeauty(slave) { + if (arcology.FSTransformationFetishist !== "unset") { + if (Math.abs(slave.shouldersImplant) > 1) { + beauty += (arcology.FSTransformationFetishist/20) + Math.abs(slave.shouldersImplant); + } + if (Math.abs(slave.hipsImplant) > 1) { + beauty += (arcology.FSTransformationFetishist/20) + Math.abs(slave.hipsImplant); + } + if (slave.race !== slave.origRace) { + beauty += arcology.FSTransformationFetishist/20; + } + if (slave.faceImplant > 95 && slave.face > 40) { + beauty += arcology.FSTransformationFetishist/4; + } + } else if (arcology.FSBodyPurist !== "unset") { + if (slave.faceImplant > 5) { + beauty -= (arcology.FSBodyPurist/100)*(slave.faceImplant/10); + } + if (slave.race === slave.origRace) { + beauty -= arcology.FSBodyPurist/20; + } + } else { + if (slave.faceImplant > 30) { + beauty -= (slave.faceImplant - 30)/10; + } + } + }; + + function calcRepopulationPregBeauty(slave) { + if (slave.preg > 30) { /*limited huge boost for full term */ + if (slave.broodmother > 0) { + beauty += 0.4*(slave.broodmother*arcology.FSRepopulationFocus); /*40-80 limited due to constant presence. Also good breeders, but subpar mothers*/ + } else if (slave.bellyPreg >= 600000) { + beauty += 1.5*arcology.FSRepopulationFocus; /*150*/ + } else if (slave.bellyPreg >= 300000) { + beauty += arcology.FSRepopulationFocus; /*100*/ + } else if (slave.bellyPreg >= 120000) { + beauty += 0.9*arcology.FSRepopulationFocus; /*90*/ + } else { + beauty += 0.8*arcology.FSRepopulationFocus; /*80*/ + } + } else if (slave.preg > 20) { + if (slave.pregType >= 20) { + beauty += 10*(arcology.FSRepopulationFocus/40); /*25*/ + } else if (slave.pregType >= 10) { + beauty += 9*(arcology.FSRepopulationFocus/40); /*22.5*/ + } else { + beauty += 8*(arcology.FSRepopulationFocus/40); /*20*/ + } + } else if (slave.preg > 10) { + if (slave.pregType >= 20) { + beauty += arcology.FSRepopulationFocus/5; /*20*/ + } else if (slave.pregType >= 10) { + beauty += arcology.FSRepopulationFocus/6.25; /*16*/ + } else { + beauty += arcology.FSRepopulationFocus/10; /*10*/ + } + } else if (slave.pregWeek < 0) { + beauty += arcology.FSRepopulationFocus/10; /*10*/ + } else if (slave.preg > 0 && slave.collar === "preg biometrics") { + beauty += arcology.FSRepopulationFocus/12; /*8.33*/ + } else { + beauty -= arcology.FSRepopulationFocus/2.5; /*-40*/ + } + if (slave.births > 50) { + beauty += arcology.FSRepopulationFocus/1.5; /*66.6*/ + } else { + beauty += slave.births*(arcology.FSRepopulationFocus/75); + } + }; + + function calcRestartPregBeauty(slave) { + if (slave.breedingMark === 1 && V.propOutcome === 1) { + if (slave.preg > 5 && slave.pregSource === -1) { + beauty += arcology.FSRestart; /*100*/ + } + } else { + if (slave.preg > 30) { + if (slave.bellyPreg >= 600000) { + beauty -= 2.5*arcology.FSRestart; /*-250*/ + } else if (slave.bellyPreg >= 300000) { + beauty -= 1.25*arcology.FSRestart; /*-125*/ + } else if (slave.bellyPreg >= 120000) { + beauty -= arcology.FSRestart; /*-100*/ + } else { + beauty -= 0.75*arcology.FSRestart; /*-75*/ + } + } else if (slave.preg > 20) { + if (slave.pregType >= 20) { + beauty -= arcology.FSRestart/1.5; /*-66.6*/ + } else if (slave.pregType >= 10) { + beauty -= arcology.FSRestart/2; /*-50*/ + } else { + beauty -= arcology.FSRestart/3; /*-33.3*/ + } + } else if (slave.preg > 10) { + if (slave.pregType >= 20) { + beauty -= 3*(arcology.FSRestart/8); /*-37.5*/ + } else if (slave.pregType >= 10) { + beauty -= arcology.FSRestart/4; /*-25*/ + } else { + beauty -= arcology.FSRestart/8; /*-12.5*/ + } + } else if (slave.preg === -2) { + beauty += arcology.FSRestart/7; /*14.2*/ + } else if (slave.preg < 1) { + beauty += arcology.FSRestart/5; /*20*/ + } + if (slave.births > 50) { + beauty -= arcology.FSRestart; /*-100*/ + } else { + beauty -= slave.births*(arcology.FSRestart/50); + } + } + }; + + function calcFutaLawBeauty(slave) { + switch (arcology.FSGenderRadicalistLawFuta) { + case 1: + if (slave.dick > 0 && slave.vagina > -1) { /* herms */ + calcFutaLawTrueFutaBeauty(slave); + } + break; + case 2: + if (canAchieveErection(slave) && slave.balls > 0 && slave.scrotum > 0) { /* erection! */ + calcFutaLawBigDickBeauty(slave); + } + break; + case 3: + calcFutaLawBigBootyBeauty(slave); + break; + case 4: + if (slave.dick > 0 && slave.vagina === -1 && slave.faceShape !== "masculine") { + if (slave.boobs < 500 && slave.dick < 4 && slave.balls < 4) { + calcFutaLawFemboyBeauty(slave); + } + } + break; + } + }; + + function calcFutaLawTrueFutaBeauty(slave) { + if (slave.dick <= 10) { + beauty += slave.dick; + } else if (slave.dick > 20) { + beauty += 2; + } else { + beauty += 4; + } + }; + + function calcFutaLawBigDickBeauty(slave) { + beauty += slave.dick; + if (slave.balls > 120) { + beauty += 14; + } else if (slave.balls > 100) { + beauty += 12; + } else if (slave.balls > 80) { + beauty += 10; + } else if (slave.balls > 60) { + beauty += 8; + } else if (slave.balls > 40) { + beauty += 6; + } else if (slave.balls > 20) { + beauty += 4; + } else if (slave.balls > 10) { + beauty += 2; + } else { + beauty += slave.balls; + } + }; + + function calcFutaLawBigBootyBeauty(slave) { + if (slave.hips >= 1) { + beauty += 4*(slave.hips - 1); /*8*/ + if (arcology.FSSlimnessEnthusiast !== "unset") { + beauty += 4*(slave.hips - 1); /*8*/ /* offsets the malus for big butts */ + } + } + if (slave.analSkill > 60 && slave.anus >= 2) { + beauty += 2*(slave.anus-2); /*6*/ + if (arcology.FSSlimnessEnthusiast != "unset") { + beauty += 2*(slave.anus-2); /*6*/ /* offsets the malus for big butts */ + } + } + if (slave.butt >= 5) { + beauty += (slave.butt - 5); /*15*/ + } + }; + + function calcFutaLawFemboyBeauty(slave) { + if (arcology.FSSlimnessEnthusiast === "unset") { /*balance with slimness*/ + beauty += 20; + if (slave.boobs < 300) { + beauty += 12; + } else if (slave.boobs < 400) { + beauty += 6; + } + } + if (slave.dick === 1) { + beauty += 12; + } else if (slave.dick === 2) { + beauty += 6; + } + if (slave.balls <= 2) { + beauty += 8; + } + if (slave.faceShape === "cute" && slave.face > 0) { /*uggos need not apply, maybe a small boost for other faceShapes*/ + beauty += ((arcology.FSGenderRadicalist/25)*(slave.face/30)) - 2; /*gives a slightly better boost than androgynous does with gendrad boost, 15.3*/ + } + if (slave.nipples === "tiny") { + beauty += 5; + } else if (slave.nipples === "cute") { + beauty += 2; + } else { + beauty -= 5; + } + }; + + function calcBodyProportionBeauty(slave) { + if (arcology.FSGenderFundamentalist !== "unset") { + if (slave.shoulders > slave.hips) { + if (slave.boobs <= 2000*(slave.shoulders - slave.hips)) { + beauty -= (slave.shoulders - slave.hips)*(1 + (arcology.FSGenderFundamentalist/200)); + } + } + } else if (arcology.FSGenderRadicalist === "unset") { + if (slave.shoulders > slave.hips) { + if (slave.boobs <= 2000*(slave.shoulders - slave.hips)) { + beauty -= slave.shoulders - slave.hips; + } + } + } + }; + + function calcVoiceBeauty(slave) { + if (canTalk(slave)) { + if (slave.accent >= 3) { + beauty -= 1; + } else if (slave.accent === 1) { + beauty += 1; + } + } else { + beauty -= 2; + } + }; + + function calcLimbsBeauty(slave) { + switch (slave.amp) { + case 1: + beauty -= 10; + break; + case -1: + case -2: + case -4: + beauty -= 2; + break; + } + }; + + function calcPubertyBeauty(slave) { + if (slave.pubertyXX === 1) { + beauty += 5; + } + if (slave.pubertyXY === 0 && slave.physicalAge > V.potencyAge && slave.balls > 0) { + beauty += 10; + if (arcology.FSGenderFundamentalist !== "unset") { + beauty += 5; + } + } + }; + + function calcFSMiscBeauty(slave) { + if (arcology.FSTransformationFetishist > 20) { + if (slave.lips > 70) { + if (slave.lipsImplant/slave.lips < 0.5) { + beauty -= ((slave.lips/10) + (arcology.FSTransformationFetishist/20)); + } + } + if (slave.hips === 3) { + beauty += 10; + } + } + if ((arcology.FSGenderRadicalist > 20 && arcology.FSGenderRadicalistLawFuta !== 3) || arcology.FSSlimnessEnthusiast > 20) { + if (slave.hips < 0) { + beauty += Math.abs(slave.hips); + } + } + if (arcology.FSPhysicalIdealist !== "unset") { + if (slave.height > Height.mean(slave)) { + beauty += 10; + } + } + if (arcology.FSHedonisticDecadenceLaw2 === 1) { + if (slave.boobs >= 2000 && slave.butt >= 5 && slave.weight > 95) { + beauty += 5 + (arcology.FSHedonisticDecadence/20); /*10*/ + } else { + beauty -= 15 + (arcology.FSHedonisticDecadence/20); /*-20*/ + } + } + if (arcology.FSChattelReligionistCreed === 1) { + if (V.nicaeaAssignment === slave.assignment) { + beauty += 2*V.nicaeaPower; + } + } + }; + + function calcPurityBeauty(slave) { + if (isPure(slave)) { + V.pure = V.pure++ || 1; + if (arcology.FSBodyPurist !== "unset") { + beauty += arcology.FSBodyPurist/5; + } + if (arcology.FSTransformationFetishist === "unset") { + beauty += 2; + } + } else if (arcology.FSTransformationFetishist !== "unset") { + beauty += arcology.FSTransformationFetishist/40; + } + }; + + function calcPhysiqueBeauty(slave) { + let physiquePass = 0; + + if (slave.boobs < 500 && slave.butt < 3) { + if (slave.muscles <= 30 && arcology.FSPhysicalIdealist === "unset" && slave.weight <= 10 && arcology.FSHedonisticDecadence === "unset") { + physiquePass = 1; + } else if (arcology.FSPhysicalIdealist !== "unset") { /* no muscle malus for muscle loving societies */ + if (arcology.FSPhysicalIdealistStrongFat === 1 && slave.weight <= 30) { /* reduced weight malus for fat loving societies */ + physiquePass = 1; + } else if (slave.weight <= 10) { + physiquePass = 1; + } + } else if (arcology.FSHedonisticDecadence !== "unset" && slave.weight <= 30) { /* reduced weight malus for fat loving societies */ + if (arcology.FSHedonisticDecadenceStrongFat === 1) { /* no muscle malus for muscle loving societies */ + physiquePass = 1; + } else if (slave.muscles <= 30) { + physiquePass = 1; + } + } + } + if (physiquePass === 1) { + beauty += 40; + if (arcology.FSSlimnessEnthusiast > 20) { + beauty += arcology.FSSlimnessEnthusiast/20; + if (canTalk(slave) && slave.voice === 3) { + beauty += arcology.FSSlimnessEnthusiast/40; + } + } + } else if (slave.butt > 4 && slave.boobs > 800) { + if (arcology.FSSlimnessEnthusiast === "unset") { + beauty += 1; + } + if (arcology.FSAssetExpansionist > 20) { + beauty += arcology.FSAssetExpansionist/20; + if (canTalk(slave) && slave.voice === 3) { + beauty += arcology.FSAssetExpansionist/40; + } + } + } + }; + + function calcSlimBeauty(slave) { + let slimPass; + + if (slave.boobs < 300 && slave.butt <= 1 && slave.waist <= 10) { + if (arcology.FSPhysicalIdealist === "unset" && arcology.FSHedonisticDecadenceStrongFat === 0 && slave.muscles > 30) { /*muscle check*/ + slimPass = 0; + } else if (arcology.FSHedonisticDecadence !== "unset" || arcology.FSPhysicalIdealistStrongFat === 1) { /*weight check*/ + if (slave.weight > 30) { + slimPass = 0; + } + } else if (slave.weight > 10) { + slimPass = 0; + } else { + slimPass = 1; + } + } + if (slimPass === 1) { + beauty += 40 + (arcology.FSSlimnessEnthusiast/20); /*45*/ + } else { + beauty -= arcology.FSSlimnessEnthusiast/20; + } + }; + + function calcGenderLawBeauty(slave) { + V.genderLawPass = 1; + + if (arcology.FSPhysicalIdealist === "unset" && arcology.FSHedonisticDecadenceStrongFat === 0 && slave.muscles > 30) { /*muscle check*/ + V.genderLawPass = 0; + } else if (arcology.FSHedonisticDecadence !== "unset" || arcology.FSPhysicalIdealistStrongFat === 1) { /*weight check*/ + if (slave.weight > 130 || slave.weight <= -30) { + V.genderLawPass = 0; + } + } else if (Math.abs(slave.weight) > 30) { + V.genderLawPass = 0; + } else if (arcology.FSAssetExpansionist !== "unset") { + if (slave.boobs < 500 || slave.boobs > 1600 || slave.butt < 3 || slave.butt > 6) { + V.genderLawPass = 0; + } + } else if (slave.boobs < 500 || slave.boobs > 800 || slave.butt < 3 || slave.butt > 4) { + V.genderLawPass = 0; + } + if (V.genderLawPass === 1) { + beauty += 60; + } else { + beauty -= 10; + } + }; + + function calcMultipliersBeauty(slave) { + calcBellyBeauty(slave); + if (arcology.FSGenderRadicalist !== "unset") { + if (slave.bellyPreg >= 500 && arcology.FSRepopulationFocus === "unset" && arcology.FSRestart === "unset") { + if (slave.mpreg === 1) { + beauty = 0.9*beauty; + } else { + beauty = 0.7*beauty; + } + } + } else if (arcology.FSGenderFundamentalist === "unset") { + if (slave.preg > 10 && arcology.FSRepopulationFocus === "unset" && arcology.FSRestart === "unset") { + beauty = 0.8*beauty; + } + } + if (slave.breedingMark === 1) { + if (V.propOutcome === 1) { + beauty = 2*beauty; + } else { + beauty += 2; + } + } + if (slave.fuckdoll === 0 && V.seeAge === 1) { + calcAgeBeauty(slave); + } + if (slave.prestige + slave.pornPrestige > 0) { + calcPrestigeBeauty(slave); + } + }; + + function calcBellyBeauty(slave) { + if (slave.bellySag > 0) { + if (slave.belly < 100) { + if (arcology.FSRepopulationFocus === "unset") { + beauty -= 20; + } + } + } + if (slave.bellyImplant >= 1500) { + if (arcology.FSTransformationFetishist > 20) { + beauty += Math.min(Math.trunc(slave.bellyImplant/1000), 50); /*50*/ + } else if (arcology.FSRepopulationFocus > 60) { + if ((slave.ovaries === 0 && slave.mpreg === 0) || slave.preg < -1) { + beauty += 20; + } + } else { + if (slave.bellyImplant >= 750000) { /* multipliers */ + beauty = 0.2*beauty; + } else if (slave.bellyImplant >= 450000) { + beauty = 0.5*beauty; + } else if (slave.bellyImplant >= 300000) { + beauty = 0.7*beauty; + } else if (slave.bellyImplant >= 100000) { + beauty = 0.8*beauty; + } else if (slave.bellyImplant >= 50000) { + beauty = 0.85*beauty; + } else { + beauty = 0.9*beauty; + } + } + } + }; + + function calcAgeBeauty(slave) { + if (slave.physicalAge === V.minimumSlaveAge) { + beauty += 1; + if (slave.physicalAge === V.fertilityAge && canGetPregnant(slave) && (arcology.FSRepopulationFocus !== "unset" || arcology.FSGenderFundamentalist !== "unset") && arcology.FSRestart === "unset") { + if (slave.birthWeek === 0) { + beauty += 1.6*beauty; + } else if (slave.birthWeek < 4) { + beauty += 0.2*beauty; + } + } else { + if (slave.birthWeek === 0) { + beauty += 0.8*beauty; + } else if (slave.birthWeek < 4) { + beauty += 0.1*beauty; + } + } + } else if (slave.physicalAge === V.fertilityAge && canGetPregnant(slave) && (arcology.FSRepopulationFocus !== "unset" || arcology.FSGenderFundamentalist !== "unset") && arcology.FSRestart === "unset") { + beauty += 1; + if (slave.birthWeek === 0) { + beauty += 0.8*beauty; + } else if (slave.birthWeek < 4) { + beauty += 0.1*beauty; + } + } + }; + + function calcPrestigeBeauty(slave) { /* multipliers */ + if (slave.prestige >= 3) { + beauty += 2*beauty; + } else if (slave.prestige === 2) { + beauty += 0.5*beauty; + } else if (slave.prestige === 1) { + beauty += 0.25*beauty; + } + if (slave.pornPrestige === 3) { + beauty += beauty; + } else if (slave.pornPrestige === 2) { + beauty += 0.5*beauty; + } else if (slave.pornPrestige === 1) { + beauty += 0.1*beauty; + } + }; + + return Beauty; +})(); diff --git a/src/js/assayJS.tw b/src/js/assayJS.tw index 309257eaeac979a7eb46ff36f3da3380b63b78c3..cfcec7dce764a9a7c9d3969d3fd37d23b391b949 100644 --- a/src/js/assayJS.tw +++ b/src/js/assayJS.tw @@ -179,11 +179,11 @@ window.slimPass = function(slave) { if (ArcologyZero.FSSlimnessEnthusiastLaw === 1) { if ((slave.boobs < 300) && (slave.butt <= 1) && (slave.waist <= 10)) { - State.variables.slimPass = 1; + slimPass = 1; if ((ArcologyZero.FSPhysicalIdealist === "unset") && (ArcologyZero.FSHedonisticDecadenceStrongFat === 0) && (slave.muscles > 30)) { /*muscle check*/ slimPass = 0; } - if (State.variables.slimPass === 1) { + if (slimPass === 1) { if ((ArcologyZero.FSHedonisticDecadence !== "unset") || (ArcologyZero.FSPhysicalIdealistStrongFat === 1)) { /*weight check*/ if (slave.weight > 30) { slimPass = 0; diff --git a/src/js/beautyJS.tw b/src/js/beautyJS.tw new file mode 100644 index 0000000000000000000000000000000000000000..f1461649e87230bfcd2d97a616b11c798b386e1d --- /dev/null +++ b/src/js/beautyJS.tw @@ -0,0 +1,1236 @@ +:: Beauty [script] + +window.Beauty = (function() { + "use strict"; + let V, arcology, beauty; + + function Beauty(slave) { + V = State.variables; + arcology = V.arcologies[0]; + modScore(slave); + + beauty = 120; + calcInitBeauty(slave); + if (slave.fuckdoll === 0) { + beauty += 30; + calcFaceBeauty(slave); + calcTeethBeauty(slave); + calcModBeauty(slave); + calcCosmeticsBeauty(slave); + calcFSNotFuckdollBeauty(slave); + calcMiscNotFuckdollBeauty(slave); + } + if (slave.dick > 0) { + calcDickBeauty(slave); + } + if (slave.balls > 0) { + calcBallsBeauty(slave); + } + calcButtBeauty(slave); + calcHipsBeauty(slave); + calcBoobsBeauty(slave); + calcWeightBeauty(slave); + calcMusclesBeauty(slave); + calcBodyHairBeauty(slave); + calcImplantBeauty(slave); + if (arcology.FSRepopulationFocus > 40) { + calcRepopulationPregBeauty(slave); + } else if (arcology.FSRestart > 40) { + calcRestartPregBeauty(slave); + } + if (arcology.FSGenderRadicalistLawFuta !== 0) { + calcFutaLawBeauty(slave); + } + calcBodyProportionBeauty(slave); + calcVoiceBeauty(slave); + if (slave.amp !== 0) { + calcLimbsBeauty(slave); + } + calcPubertyBeauty(slave); + calcFSMiscBeauty(slave); + + calcPurityBeauty(slave); + calcPhysiqueBeauty(slave); + if (arcology.FSSlimnessEnthusiastLaw === 1) { + calcSlimBeauty(slave); + } + if (arcology.FSGenderFundamentalistLawBeauty + arcology.FSGenderRadicalistLawBeauty > 0) { + calcGenderLawBeauty(slave); + } + + calcMultipliersBeauty(slave); + beauty = Math.max(1, Math.trunc(0.5*beauty)); + + V.beauty = beauty; + }; + + function calcInitBeauty(slave) { + beauty -= slave.waist/20; + beauty -= slave.muscles/30; + beauty += slave.lips/10; + beauty += slave.clit; + beauty += (slave.height-160)/10; + beauty += 2*slave.hips; + beauty -= 3*slave.visualAge; + if (slave.anus > 3) { + beauty -= 10 + (slave.anus*2); /*-20*/ + } + if (slave.vagina > 3) { + beauty -= 10 + (slave.vagina*2); /*-20*/ + } + + }; + + function calcFaceBeauty(slave) { + beauty += slave.face/5; + switch (slave.faceShape) { + case "masculine": + if (arcology.FSGenderRadicalist !== "unset") { + beauty -= (2 - (arcology.FSGenderRadicalist/25))*(slave.face/30); + } else if (arcology.FSGenderFundamentalist !== "unset") { + beauty -= (2 + (arcology.FSGenderFundamentalist/25))*(slave.face/30); + } else { + beauty -= 2*(slave.face/30); + } + break; + case "androgynous": + if (arcology.FSGenderRadicalist !== "unset") { + beauty += 2 - ((1 - (arcology.FSGenderRadicalist/25))*(slave.face/30)); + } else if (arcology.FSGenderFundamentalist !== "unset") { + beauty += 2 - ((1 + (arcology.FSGenderFundamentalist/25))*(slave.face/30)); + } else { + beauty += 2 - (slave.face/30); + } + break; + case "exotic": + beauty += 2*(slave.face/30); + break; + case "sensual": + beauty += 2 + (slave.face/30); + break; + case "cute": + beauty += 8/3; + break; + } + }; + + function calcTeethBeauty(slave) { + switch (slave.teeth) { + case "crooked": + beauty -= 3; + break; + case "braces": + case "cosmetic braces": + if (slave.visualAge > 14 && slave.visualAge < 18) { + beauty += 1; + } + break; + case "removable": + case "pointy": + case "baby": + case "mixed": + beauty -= 1; + break; + } + }; + + function calcModBeauty(slave) { + if (arcology.FSTransformationFetishist > 20 || arcology.FSDegradationist > 20) { + if (V.modScore > 15 || (V.piercingScore > 8 && V.tatScore > 5)) { + beauty += 8 + (V.modScore*0.25); + } else if (V.modScore > 7) { + beauty += V.modScore - 7; + } + } else if (arcology.FSBodyPurist > 20 || arcology.FSPaternalist > 20) { + if (V.modScore <= 7) { + beauty += 10; + } else { + beauty += 15 - V.modScore; + } + } else { + if (V.modScore <= 7) { + beauty += V.modScore; + } else if (V.modScore > 15 || (V.piercingScore > 8 && V.tatScore > 5)) { + beauty += 11; + } else { + beauty += 7 + (0.5*(V.modScore - 7)); + } + } + }; + + function calcCosmeticsBeauty(slave) { + if (slave.brand !== 0) { + if (V.rep > 10000) { + beauty += 1; + } else if (V.rep < 5000) { + beauty -= 1; + } + } + if (slave.minorInjury !== 0) { + beauty -= 2; + } + if (slave.cSec === 1) { + beauty -= 2; + } + if (slave.nails > 0) { + beauty += 1; + } + if (slave.makeup > 0) { + beauty += 1; + } + switch (slave.markings) { + case "beauty mark": + if (slave.face > 40) { + beauty += 6; + } else if (slave.face < -10) { + beauty -= 6; + } + break; + case "birthmark": + if (slave.prestige > 0 || slave.pornPrestige > 1) { + beauty += 4; + } else { + beauty -= 4; + } + break; + case "freckles": + case "heavily freckled": + if (slave.skin === "pale" || slave.skin === "fair") { + beauty += 2; + if (slave.hColor === "red") { + beauty += 2; + } + } + break; + } + }; + + function calcFSNotFuckdollBeauty(slave) { + if (arcology.FSSupremacist !== "unset") { + if (slave.race === arcology.FSSupremacistRace) { + beauty += (arcology.FSSupremacist/3) + (arcology.FSSupremacistLawME*10); + } + } + if (arcology.FSSubjugationist !== "unset") { + if (slave.race === arcology.FSSubjugationistRace) { + beauty -= (arcology.FSSubjugationist/2) - (arcology.FSSubjugationistLawME*10); + } + } + if (arcology.FSDegradationist !== "unset") { + beauty -= (arcology.FSDegradationist/10)*((slave.intelligence + slave.intelligenceImplant)/20); + } + if (arcology.FSGenderFundamentalistLawBimbo === 1) { + beauty -= (slave.intelligence + slave.intelligenceImplant)/2; + } + if (arcology.FSYouthPreferentialist !== "unset") { + beauty += (30 - slave.visualAge)/(30 - V.minimumSlaveAge)*((arcology.FSYouthPreferentialist/2) + (arcology.FSYouthPreferentialistLaw*10)); /*max 60*/ + } else if (arcology.FSMaturityPreferentialist !== "unset") { + if (V.retirementAge > 30) { + beauty += (30 - slave.visualAge)/(30 - V.retirementAge)*((arcology.FSMaturityPreferentialist/2) + (arcology.FSMaturityPreferentialistLaw*10)); /*max 60, problems if retirementAge is 30 or under*/ + } + } + if (arcology.FSBodyPurist > 20) { /*bonus for virgin slaves*/ + if (slave.vagina === 0 && slave.vaginalCount === 0) { + beauty += 30*(arcology.FSBodyPurist/100); + } + if (slave.anus === 0 && slave.analCount === 0) { + beauty += 30*(arcology.FSBodyPurist/100); + } + } + if (arcology.FSEdoRevivalist !== "unset") { + if (slave.nationality === "Japanese" || slave.nationality === "Edo Revivalist") { + beauty += arcology.FSEdoRevivalist/2; + } else if (slave.race === "asian") { + beauty += arcology.FSEdoRevivalist/5; + } else { + beauty -= arcology.FSEdoRevivalist/4; + } + if (V.language === "Japanese" && canTalk(slave)) { + if (slave.accent > 1) { + beauty -= arcology.FSEdoRevivalist/2; + } else if (slave.accent > 0) { + beauty -= arcology.FSEdoRevivalist/5; + } else { + beauty += arcology.FSEdoRevivalist/10; + } + } + } else if (arcology.FSChineseRevivalist !== "unset") { + if (slave.nationality === "Chinese" || slave.nationality === "Ancient Chinese Revivalist") { + beauty += arcology.FSChineseRevivalist/2; + } else if (slave.race === "asian") { + beauty += arcology.FSChineseRevivalist/5; + } else { + beauty -= arcology.FSChineseRevivalist/4; + } + if (V.language === "Chinese" && canTalk(slave)) { + if (slave.accent > 1) { + beauty -= arcology.FSChineseRevivalist/2; + } else if (slave.accent > 0) { + beauty -= arcology.FSChineseRevivalist/5; + } else { + beauty += arcology.FSChineseRevivalist/10; + } + } + } + }; + + function calcMiscNotFuckdollBeauty(slave) { + beauty += Math.min(slave.health, 100)/5; + beauty += slave.voice; + beauty += (slave.intelligence + slave.intelligenceImplant)/10; + beauty += slave.entertainSkill/10; + beauty += slave.whoreSkill/10; + if (setup.entertainmentCareers.includes(slave.career)) { + beauty += 20; + } else if (V.week - slave.weekAcquired >= 20 && slave.entertainSkill >= 100) { + beauty += 10; + } + if (slave.race === "white" && slave.origRace === "white") { + beauty += 4; + } else if (slave.race === "white") { + beauty += 2; + } + }; + + function calcDickBeauty(slave) { + if (arcology.FSAssetExpansionist > 20 && arcology.FSGenderFundamentalist === "unset") { + if (slave.dick >= 20) { + beauty += 17 + (slave.dick*(arcology.FSAssetExpansionist/500)); /*23*/ + } else if (slave.dick >= 10) { + beauty += 10 + (slave.dick*(arcology.FSAssetExpansionist/300)); /*16.3*/ + } else if (slave.dick > 6) { + beauty += slave.dick*(1 + (arcology.FSAssetExpansionist/100)); /*10*/ + } + } else if (arcology.FSGenderFundamentalist !== "unset") { + if (slave.dick > 0) { + beauty += 3 - slave.dick; + } + } else if (arcology.FSGenderRadicalist !== "unset") { + if (slave.dick > 20) { + beauty += 20 + (slave.dick*(arcology.FSGenderRadicalist/400)); /*27.5*/ + } else if (slave.dick >= 10) { + beauty += 10 + (slave.dick*(arcology.FSGenderRadicalist/200)); /*20*/ + } else if (slave.dick > 0) { + beauty += slave.dick*(1 + (arcology.FSGenderRadicalist/100)); /*10*/ + } + } else { + beauty -= 2*slave.dick; + } + }; + + function calcBallsBeauty(slave) { + if (arcology.FSAssetExpansionist > 20 && arcology.FSGenderFundamentalist === "unset") { + if (slave.balls > 100) { + beauty += 41 + (slave.balls*(arcology.FSAssetExpansionist/500)); /*66*/ + } else if (slave.balls > 80) { + beauty += 16 + (slave.balls*(arcology.FSAssetExpansionist/400)); /*41*/ + } else if (slave.balls > 60) { + beauty += 6 + (slave.balls*(arcology.FSAssetExpansionist/800)); /*16*/ + } else if (slave.balls > 10) { + beauty += slave.balls*((arcology.FSAssetExpansionist/1000)); /*6*/ + } + } else if (arcology.FSGenderFundamentalist !== "unset") { + if (slave.scrotum > 0) { + beauty -= slave.balls*(1 + (arcology.FSGenderFundamentalist/200)); + } + } else if (arcology.FSGenderRadicalist !== "unset") { + if (slave.scrotum > 0) { + if (slave.balls > 100) { + beauty += 40 + (slave.balls*(arcology.FSGenderRadicalist/2000)); /*46.25*/ + } else if (slave.balls > 60) { + beauty += 30 + (slave.balls*(arcology.FSGenderRadicalist/1000)); /*40*/ + } else if (slave.balls > 10) { + beauty += 15 + (slave.balls*(arcology.FSGenderRadicalist/400)); /*30*/ + } else { + beauty += slave.balls*(1 + (arcology.FSGenderRadicalist/200)); /*15*/ + } + } + } else { + if (slave.scrotum > 0) { + beauty -= slave.balls; + } + } + if (arcology.FSRestart !== "unset") { /* Eugenics does not like slaves having working balls */ + if (slave.ballType === "human") { + beauty -= slave.balls*(1 + (arcology.FSRestart/100)); + } + } + }; + + function calcButtBeauty(slave) { + if (slave.butt <= 10) { + beauty += 1.5*slave.butt; /*max 15*/ + } else { + beauty += 15 + (slave.butt/4); /*max 20*/ + } + if ((arcology.FSTransformationFetishist > 20 && arcology.FSSlimnessEnthusiast === "unset") || arcology.FSAssetExpansionist > 20) { + if (slave.butt <= 2) { + beauty += 2*(slave.butt - 1); /*2*/ + } else if (slave.butt <= 4) { + beauty += 2 + 1.5*(slave.butt - 2); /*5*/ + } else if (slave.butt <= 10) { + beauty += 5 + 1*(slave.butt - 4); /*11*/ + } else { + beauty += 7 + 0.5*(slave.butt - 5); /*14.5*/ + } /* maybe buff butts? */ + } else if (arcology.FSSlimnessEnthusiast > 20) { + if (slave.butt <= 3) { + beauty += 12 + 3*(slave.butt - 1); /*18 buff if asses get buffed*/ + } else if (slave.butt <= 5) { + beauty += 9; + } else { + beauty -= 10 + 3*slave.butt; /*-70*/ + } + } else { + if (slave.butt <= 2) { + beauty += 2*(slave.butt-1); /*2*/ + } else if (slave.butt <= 4) { + beauty += 2 + (1.5*(slave.butt - 2)); /*5*/ + } else if (slave.butt <= 8) { + beauty += 2 + (1.5*(slave.butt - 2)); /*11*/ + } else { + beauty += 9; + } + } + if (arcology.FSTransformationFetishist > 20) { /* the cost of using AE's values */ + if (arcology.FSSlimnessEnthusiast !== "unset") { + if (slave.butt >= 3) { + if (slave.buttImplant/slave.butt < 0.25) { + beauty -= 2*(slave.butt - 1) + 10; + } + } + } else { + if (slave.butt >= 6) { + if (slave.buttImplant/slave.butt < 0.50) { + beauty -= (1.5*slave.butt) + 6; /* will get nasty at huge sizes */ + } + } + } + } + }; + + function calcHipsBeauty(slave) { /* butts in general may need buffs */ + switch (slave.hips) { + case -2: + if (slave.butt > 2) { + if (arcology.FSTransformationFetishist === "unset" && arcology.FSHedonisticDecadence === "unset") { + beauty += 2 - slave.butt; + } else { + beauty += 1; + } + } else { + beauty += 1; + } + break; + case -1: + if (slave.butt > 4) { + if (arcology.FSTransformationFetishist === "unset" && arcology.FSHedonisticDecadence === "unset") { + beauty += 4 - slave.butt; + } else { + beauty += 1; + } + } else { + beauty += 1; + } + break; + case 0: + if (slave.butt > 6) { + if (arcology.FSTransformationFetishist === "unset" && arcology.FSHedonisticDecadence === "unset") { + beauty += 6 - slave.butt; + } else { + beauty += 1; + } + } else if (slave.butt <= 1) { + beauty += slave.butt - 2; + } else { + beauty += 1; + } + break; + case 1: + if (slave.butt > 8) { + if (arcology.FSTransformationFetishist === "unset" && arcology.FSHedonisticDecadence === "unset") { + beauty += 8 - slave.butt; + } else { + beauty += 1; + } + } else if (slave.butt <= 2) { + beauty += slave.butt - 3; + } else { + beauty += 1; + } + break; + case 2: + if (slave.butt <= 3) { + beauty += slave.butt - 4; + } else { + beauty += 1; + } + break; + case 3: + if (slave.butt <= 8) { + beauty += slave.butt - 8; + } else { + beauty += 1; + } + break; + } + }; + + function calcBoobsBeauty(slave) { + if ((arcology.FSTransformationFetishist > 20 && arcology.FSSlimnessEnthusiast === "unset") || arcology.FSAssetExpansionist > 20) { + if (slave.boobs <= 500) { + beauty += 0.02*(slave.boobs - 250); /*5*/ + } else if (slave.boobs <= 1500) { + beauty += 5 + 0.015*(slave.boobs - 500); /*20*/ + } else if (slave.boobs <= 3000) { + beauty += 20 + 0.01*(slave.boobs - 1500); /*42.5*/ + } else if (slave.boobs <= 25000) { + beauty += 50 + 0.005*(slave.boobs - 3000); /*160 - this might need to be lowered. Maybe drop the 50? Otherwise break it down more.*/ + } else { + beauty += 145 + 0.001*(slave.boobs - 10000); /* 185 */ + } + } else if (arcology.FSSlimnessEnthusiast > 20) { + if (slave.boobs <= 500) { + beauty += 0.08*(slave.boobs); /*40 - buff me to be in line with higher end asset exp*/ + } else if (slave.boobs <= 1000) { + beauty += 10; + } else if (slave.boobs <= 3000) { + beauty += 5; + } else { + beauty -= 5 + 0.005*(slave.boobs - 3000); /*-110*/ + } + } else { + if (slave.boobs <= 1200) { + beauty += 0.02*(slave.boobs - 200); /*20*/ + } else if (slave.boobs <= 2400) { + beauty += 20 + (0.01*(slave.boobs - 1200)); /*32*/ + } else if (slave.boobs <= 3600) { + beauty += 32 + (0.005*(slave.boobs - 2400)); /*38*/ + } else if (slave.boobs <= 10000) { + beauty += 38; + } else if (slave.boobs <= 25000) { + beauty += 30; + } else { + beauty += 20; + } + } + if (arcology.FSTransformationFetishist > 20) { /* the cost of using AE's values */ + if (arcology.FSSlimnessEnthusiast !== "unset") { + if (slave.boobs >= 400) { + if (slave.boobs >= 10000) { + if (slave.boobsImplant/slave.boobs < 0.75) { + beauty -= (0.05*slave.boobs) + 10; + } + } else if (slave.boobs >= 2000) { + if (slave.boobsImplant/slave.boobs < 0.50) { + beauty -= (0.05*slave.boobs) + 10; + } + } else if (slave.boobs >= 1000) { + if (slave.boobsImplant/slave.boobs < 0.25) { + beauty -= (0.05*slave.boobs) + 10; + } + } else { + if (slave.boobsImplant/slave.boobs < 0.10) { + beauty -= (0.05*slave.boobs) + 10; + } + } + } + } else { + if (slave.boobs >= 600) { + if (slave.boobs >= 10000) { + if (slave.boobsImplant/slave.boobs < 0.75) { + beauty -= 30 + (0.005*slave.boobs); /* will get nasty at huge sizes */ + } + } else if (slave.boobs >= 2000) { + if (slave.boobsImplant/slave.boobs < 0.50) { + beauty -= 30 + (0.005*slave.boobs); /* will get nasty at huge sizes */ + } + } else if (slave.boobs >= 1000) { + if (slave.boobsImplant/slave.boobs < 0.25) { + beauty -= 30 + (0.005*slave.boobs); /* will get nasty at huge sizes */ + } + } else { + if (slave.boobsImplant/slave.boobs < 0.10) { + beauty -= 30 + (0.005*slave.boobs); /* will get nasty at huge sizes */ + } + } + } + } + } + if (slave.boobs > 250) { + if (slave.boobShape === "perky") { + beauty += 6; + } else if (slave.boobShape === "torpedo-shaped") { + beauty += 6; + } else if (slave.boobShape === "downward-facing") { + beauty -= 4; + } else if (slave.boobShape === "saggy") { + beauty -= 4; + } + } + if (slave.nipples === "huge") { + beauty += 4; + } else if (slave.nipples === "inverted") { + beauty += 2; + } else if (slave.nipples === "puffy") { + beauty += 2; + } else if (slave.nipples === "tiny") { + beauty -= 2; + } else if (slave.nipples === "fuckable") { + if (arcology.FSTransformationFetishist !== "unset") { + beauty += arcology.FSTransformationFetishist/10; + } + } + }; + + function calcWeightBeauty(slave) { + if (arcology.FSHedonisticDecadence > 20) { + if (slave.weight < -95) { + beauty += -70 + (slave.weight/10); /*-80*/ + } else if (slave.weight < -30) { + beauty += -30 + (slave.weight/3); /*-61*/ + } else if (slave.weight < -10) { + beauty += (slave.weight); /*-30*/ + } else if (slave.weight <= 10) { + /* no effect */ + } else if (slave.weight <= 30) { + beauty += (slave.weight/2); /*15*/ + } else if (slave.weight <= 95) { + beauty += 15 + (slave.weight/7); /*28.5*/ + } else if (slave.weight <= 130) { + beauty += 28 + (slave.weight/10); /*41*/ + } else if (slave.weight <= 160) { + beauty += 42 + (slave.weight/20); /*50*/ + } else if (slave.weight <= 190) { + beauty += 50 - (slave.weight/25); /*42.5*/ + } else { + beauty += 40 - (slave.weight/20); /*30*/ + } + } else { + if (slave.weight > 130) { + beauty -= Math.abs(slave.weight)/5; + } else if (slave.hips === 3) { + if (slave.weight < -10) { + beauty -= Math.abs(slave.weight)/10; + } + } else if (slave.hips === 2) { + if (slave.weight > 95) { + beauty -= Math.abs(slave.weight)/15; + } else if (slave.weight < -30) { + beauty -= Math.abs(slave.weight)/10; + } + } else if (slave.hips === -2) { + if (slave.weight < -95 || slave.weight > 30) { + beauty -= Math.abs(slave.weight)/10; + } + } else { + if (Math.abs(slave.weight) > 30) { + beauty -= Math.abs(slave.weight)/10; + } + } + } + if (arcology.FSPhysicalIdealist !== "unset") { + if (arcology.FSPhysicalIdealistStrongFat === 1) { + if (slave.weight > 10 && slave.weight <= 130) { + beauty += slave.weight*(arcology.FSPhysicalIdealist/200); /*65*/ + } else { + beauty -= Math.abs(slave.weight)/2; + } + } + } + }; + + function calcMusclesBeauty(slave) { + if (arcology.FSPhysicalIdealist !== "unset") { + if (arcology.FSPhysicalIdealistLaw === 1) { + if (Math.abs(slave.weight) <= 30 && slave.health >= 20 && slave.muscles >= 20 && slave.muscles <= 50) { + beauty += (slave.muscles + (Math.min(slave.health,300)/5))*(arcology.FSPhysicalIdealist/100); + } else { + beauty -= 30; + } + } else { + if (slave.muscles > 30 || slave.muscles <= -5) { + beauty += slave.muscles*(arcology.FSPhysicalIdealist/120); /*+-83*/ + } + } + } else if (arcology.FSHedonisticDecadence !== "unset") { + if (slave.muscles < -10) { + beauty += Math.abs(slave.muscles)*(arcology.FSHedonisticDecadence/160); /*62.5*/ + } else if (slave.muscles > 5) { + if (arcology.FSHedonisticDecadenceStrongFat === 1) { + beauty += slave.muscles*(arcology.FSHedonisticDecadence/200); /*50*/ + } else { + beauty -= slave.muscles*(arcology.FSHedonisticDecadence/200); /*-50*/ + } + } + } + }; + + function calcBodyHairBeauty(slave) { + if (slave.physicalAge < 11) { + beauty += 4; + } else if (slave.physicalAge >= 13) { + switch (slave.underArmHStyle) { + case "hairless": + case "bald": + case "waxed": + case "shaved": + beauty += 2; + break; + case "bushy": + if (arcology.FSBodyPurist > 0) { + beauty += 4; + } else { + beauty -= 2; + } + break; + } + switch (slave.pubicHStyle) { + case "hairless": + case "bald": + case "waxed": + beauty += 2; + break; + case "bushy": + if (arcology.FSBodyPurist > 0) { + beauty += 2; + } else { + beauty -= 4; + } + break; + case "bushy in the front and neat in the rear": + if (arcology.FSBodyPurist > 0) { + beauty += 4; + } else { + beauty -= 2; + } + break; + case "very bushy": + if (arcology.FSBodyPurist > 0) { + beauty += 2; + } else { + beauty -= 6; + } + break; + } + } + }; + + function calcImplantBeauty(slave) { + if (arcology.FSTransformationFetishist !== "unset") { + if (Math.abs(slave.shouldersImplant) > 1) { + beauty += (arcology.FSTransformationFetishist/20) + Math.abs(slave.shouldersImplant); + } + if (Math.abs(slave.hipsImplant) > 1) { + beauty += (arcology.FSTransformationFetishist/20) + Math.abs(slave.hipsImplant); + } + if (slave.race !== slave.origRace) { + beauty += arcology.FSTransformationFetishist/20; + } + if (slave.faceImplant > 95 && slave.face > 40) { + beauty += arcology.FSTransformationFetishist/4; + } + } else if (arcology.FSBodyPurist !== "unset") { + if (slave.faceImplant > 5) { + beauty -= (arcology.FSBodyPurist/100)*(slave.faceImplant/10); + } + if (slave.race === slave.origRace) { + beauty -= arcology.FSBodyPurist/20; + } + } else { + if (slave.faceImplant > 30) { + beauty -= (slave.faceImplant - 30)/10; + } + } + }; + + function calcRepopulationPregBeauty(slave) { + if (slave.preg > 30) { /*limited huge boost for full term */ + if (slave.broodmother > 0) { + beauty += 0.4*(slave.broodmother*arcology.FSRepopulationFocus); /*40-80 limited due to constant presence. Also good breeders, but subpar mothers*/ + } else if (slave.bellyPreg >= 600000) { + beauty += 1.5*arcology.FSRepopulationFocus; /*150*/ + } else if (slave.bellyPreg >= 300000) { + beauty += arcology.FSRepopulationFocus; /*100*/ + } else if (slave.bellyPreg >= 120000) { + beauty += 0.9*arcology.FSRepopulationFocus; /*90*/ + } else { + beauty += 0.8*arcology.FSRepopulationFocus; /*80*/ + } + } else if (slave.preg > 20) { + if (slave.pregType >= 20) { + beauty += 10*(arcology.FSRepopulationFocus/40); /*25*/ + } else if (slave.pregType >= 10) { + beauty += 9*(arcology.FSRepopulationFocus/40); /*22.5*/ + } else { + beauty += 8*(arcology.FSRepopulationFocus/40); /*20*/ + } + } else if (slave.preg > 10) { + if (slave.pregType >= 20) { + beauty += arcology.FSRepopulationFocus/5; /*20*/ + } else if (slave.pregType >= 10) { + beauty += arcology.FSRepopulationFocus/6.25; /*16*/ + } else { + beauty += arcology.FSRepopulationFocus/10; /*10*/ + } + } else if (slave.pregWeek < 0) { + beauty += arcology.FSRepopulationFocus/10; /*10*/ + } else if (slave.preg > 0 && slave.collar === "preg biometrics") { + beauty += arcology.FSRepopulationFocus/12; /*8.33*/ + } else { + beauty -= arcology.FSRepopulationFocus/2.5; /*-40*/ + } + if (slave.births > 50) { + beauty += arcology.FSRepopulationFocus/1.5; /*66.6*/ + } else { + beauty += slave.births*(arcology.FSRepopulationFocus/75); + } + }; + + function calcRestartPregBeauty(slave) { + if (slave.breedingMark === 1 && V.propOutcome === 1) { + if (slave.preg > 5 && slave.pregSource === -1) { + beauty += arcology.FSRestart; /*100*/ + } + } else { + if (slave.preg > 30) { + if (slave.bellyPreg >= 600000) { + beauty -= 2.5*arcology.FSRestart; /*-250*/ + } else if (slave.bellyPreg >= 300000) { + beauty -= 1.25*arcology.FSRestart; /*-125*/ + } else if (slave.bellyPreg >= 120000) { + beauty -= arcology.FSRestart; /*-100*/ + } else { + beauty -= 0.75*arcology.FSRestart; /*-75*/ + } + } else if (slave.preg > 20) { + if (slave.pregType >= 20) { + beauty -= arcology.FSRestart/1.5; /*-66.6*/ + } else if (slave.pregType >= 10) { + beauty -= arcology.FSRestart/2; /*-50*/ + } else { + beauty -= arcology.FSRestart/3; /*-33.3*/ + } + } else if (slave.preg > 10) { + if (slave.pregType >= 20) { + beauty -= 3*(arcology.FSRestart/8); /*-37.5*/ + } else if (slave.pregType >= 10) { + beauty -= arcology.FSRestart/4; /*-25*/ + } else { + beauty -= arcology.FSRestart/8; /*-12.5*/ + } + } else if (slave.preg === -2) { + beauty += arcology.FSRestart/7; /*14.2*/ + } else if (slave.preg < 1) { + beauty += arcology.FSRestart/5; /*20*/ + } + if (slave.births > 50) { + beauty -= arcology.FSRestart; /*-100*/ + } else { + beauty -= slave.births*(arcology.FSRestart/50); + } + } + }; + + function calcFutaLawBeauty(slave) { + switch (arcology.FSGenderRadicalistLawFuta) { + case 1: + if (slave.dick > 0 && slave.vagina > -1) { /* herms */ + calcFutaLawTrueFutaBeauty(slave); + } + break; + case 2: + if (canAchieveErection(slave) && slave.balls > 0 && slave.scrotum > 0) { /* erection! */ + calcFutaLawBigDickBeauty(slave); + } + break; + case 3: + calcFutaLawBigBootyBeauty(slave); + break; + case 4: + if (slave.dick > 0 && slave.vagina === -1 && slave.faceShape !== "masculine") { + if (slave.boobs < 500 && slave.dick < 4 && slave.balls < 4) { + calcFutaLawFemboyBeauty(slave); + } + } + break; + } + }; + + function calcFutaLawTrueFutaBeauty(slave) { + if (slave.dick <= 10) { + beauty += slave.dick; + } else if (slave.dick > 20) { + beauty += 2; + } else { + beauty += 4; + } + }; + + function calcFutaLawBigDickBeauty(slave) { + beauty += slave.dick; + if (slave.balls > 120) { + beauty += 14; + } else if (slave.balls > 100) { + beauty += 12; + } else if (slave.balls > 80) { + beauty += 10; + } else if (slave.balls > 60) { + beauty += 8; + } else if (slave.balls > 40) { + beauty += 6; + } else if (slave.balls > 20) { + beauty += 4; + } else if (slave.balls > 10) { + beauty += 2; + } else { + beauty += slave.balls; + } + }; + + function calcFutaLawBigBootyBeauty(slave) { + if (slave.hips >= 1) { + beauty += 4*(slave.hips - 1); /*8*/ + if (arcology.FSSlimnessEnthusiast !== "unset") { + beauty += 4*(slave.hips - 1); /*8*/ /* offsets the malus for big butts */ + } + } + if (slave.analSkill > 60 && slave.anus >= 2) { + beauty += 2*(slave.anus-2); /*6*/ + if (arcology.FSSlimnessEnthusiast != "unset") { + beauty += 2*(slave.anus-2); /*6*/ /* offsets the malus for big butts */ + } + } + if (slave.butt >= 5) { + beauty += (slave.butt - 5); /*15*/ + } + }; + + function calcFutaLawFemboyBeauty(slave) { + if (arcology.FSSlimnessEnthusiast === "unset") { /*balance with slimness*/ + beauty += 20; + if (slave.boobs < 300) { + beauty += 12; + } else if (slave.boobs < 400) { + beauty += 6; + } + } + if (slave.dick === 1) { + beauty += 12; + } else if (slave.dick === 2) { + beauty += 6; + } + if (slave.balls <= 2) { + beauty += 8; + } + if (slave.faceShape === "cute" && slave.face > 0) { /*uggos need not apply, maybe a small boost for other faceShapes*/ + beauty += ((arcology.FSGenderRadicalist/25)*(slave.face/30)) - 2; /*gives a slightly better boost than androgynous does with gendrad boost, 15.3*/ + } + if (slave.nipples === "tiny") { + beauty += 5; + } else if (slave.nipples === "cute") { + beauty += 2; + } else { + beauty -= 5; + } + }; + + function calcBodyProportionBeauty(slave) { + if (arcology.FSGenderFundamentalist !== "unset") { + if (slave.shoulders > slave.hips) { + if (slave.boobs <= 2000*(slave.shoulders - slave.hips)) { + beauty -= (slave.shoulders - slave.hips)*(1 + (arcology.FSGenderFundamentalist/200)); + } + } + } else if (arcology.FSGenderRadicalist === "unset") { + if (slave.shoulders > slave.hips) { + if (slave.boobs <= 2000*(slave.shoulders - slave.hips)) { + beauty -= slave.shoulders - slave.hips; + } + } + } + }; + + function calcVoiceBeauty(slave) { + if (canTalk(slave)) { + if (slave.accent >= 3) { + beauty -= 1; + } else if (slave.accent === 1) { + beauty += 1; + } + } else { + beauty -= 2; + } + }; + + function calcLimbsBeauty(slave) { + switch (slave.amp) { + case 1: + beauty -= 10; + break; + case -1: + case -2: + case -4: + beauty -= 2; + break; + } + }; + + function calcPubertyBeauty(slave) { + if (slave.pubertyXX === 1) { + beauty += 5; + } + if (slave.pubertyXY === 0 && slave.physicalAge > V.potencyAge && slave.balls > 0) { + beauty += 10; + if (arcology.FSGenderFundamentalist !== "unset") { + beauty += 5; + } + } + }; + + function calcFSMiscBeauty(slave) { + if (arcology.FSTransformationFetishist > 20) { + if (slave.lips > 70) { + if (slave.lipsImplant/slave.lips < 0.5) { + beauty -= ((slave.lips/10) + (arcology.FSTransformationFetishist/20)); + } + } + if (slave.hips === 3) { + beauty += 10; + } + } + if ((arcology.FSGenderRadicalist > 20 && arcology.FSGenderRadicalistLawFuta !== 3) || arcology.FSSlimnessEnthusiast > 20) { + if (slave.hips < 0) { + beauty += Math.abs(slave.hips); + } + } + if (arcology.FSPhysicalIdealist !== "unset") { + if (slave.height > Height.mean(slave)) { + beauty += 10; + } + } + if (arcology.FSHedonisticDecadenceLaw2 === 1) { + if (slave.boobs >= 2000 && slave.butt >= 5 && slave.weight > 95) { + beauty += 5 + (arcology.FSHedonisticDecadence/20); /*10*/ + } else { + beauty -= 15 + (arcology.FSHedonisticDecadence/20); /*-20*/ + } + } + if (arcology.FSChattelReligionistCreed === 1) { + if (V.nicaeaAssignment === slave.assignment) { + beauty += 2*V.nicaeaPower; + } + } + }; + + function calcPurityBeauty(slave) { + if (isPure(slave)) { + V.pure = V.pure++ || 1; + if (arcology.FSBodyPurist !== "unset") { + beauty += arcology.FSBodyPurist/5; + } + if (arcology.FSTransformationFetishist === "unset") { + beauty += 2; + } + } else if (arcology.FSTransformationFetishist !== "unset") { + beauty += arcology.FSTransformationFetishist/40; + } + }; + + function calcPhysiqueBeauty(slave) { + let physiquePass = 0; + + if (slave.boobs < 500 && slave.butt < 3) { + if (slave.muscles <= 30 && arcology.FSPhysicalIdealist === "unset" && slave.weight <= 10 && arcology.FSHedonisticDecadence === "unset") { + physiquePass = 1; + } else if (arcology.FSPhysicalIdealist !== "unset") { /* no muscle malus for muscle loving societies */ + if (arcology.FSPhysicalIdealistStrongFat === 1 && slave.weight <= 30) { /* reduced weight malus for fat loving societies */ + physiquePass = 1; + } else if (slave.weight <= 10) { + physiquePass = 1; + } + } else if (arcology.FSHedonisticDecadence !== "unset" && slave.weight <= 30) { /* reduced weight malus for fat loving societies */ + if (arcology.FSHedonisticDecadenceStrongFat === 1) { /* no muscle malus for muscle loving societies */ + physiquePass = 1; + } else if (slave.muscles <= 30) { + physiquePass = 1; + } + } + } + if (physiquePass === 1) { + beauty += 40; + if (arcology.FSSlimnessEnthusiast > 20) { + beauty += arcology.FSSlimnessEnthusiast/20; + if (canTalk(slave) && slave.voice === 3) { + beauty += arcology.FSSlimnessEnthusiast/40; + } + } + } else if (slave.butt > 4 && slave.boobs > 800) { + if (arcology.FSSlimnessEnthusiast === "unset") { + beauty += 1; + } + if (arcology.FSAssetExpansionist > 20) { + beauty += arcology.FSAssetExpansionist/20; + if (canTalk(slave) && slave.voice === 3) { + beauty += arcology.FSAssetExpansionist/40; + } + } + } + }; + + function calcSlimBeauty(slave) { + let slimPass; + + if (slave.boobs < 300 && slave.butt <= 1 && slave.waist <= 10) { + if (arcology.FSPhysicalIdealist === "unset" && arcology.FSHedonisticDecadenceStrongFat === 0 && slave.muscles > 30) { /*muscle check*/ + slimPass = 0; + } else if (arcology.FSHedonisticDecadence !== "unset" || arcology.FSPhysicalIdealistStrongFat === 1) { /*weight check*/ + if (slave.weight > 30) { + slimPass = 0; + } + } else if (slave.weight > 10) { + slimPass = 0; + } else { + slimPass = 1; + } + } + if (slimPass === 1) { + beauty += 40 + (arcology.FSSlimnessEnthusiast/20); /*45*/ + } else { + beauty -= arcology.FSSlimnessEnthusiast/20; + } + }; + + function calcGenderLawBeauty(slave) { + V.genderLawPass = 1; + + if (arcology.FSPhysicalIdealist === "unset" && arcology.FSHedonisticDecadenceStrongFat === 0 && slave.muscles > 30) { /*muscle check*/ + V.genderLawPass = 0; + } else if (arcology.FSHedonisticDecadence !== "unset" || arcology.FSPhysicalIdealistStrongFat === 1) { /*weight check*/ + if (slave.weight > 130 || slave.weight <= -30) { + V.genderLawPass = 0; + } + } else if (Math.abs(slave.weight) > 30) { + V.genderLawPass = 0; + } else if (arcology.FSAssetExpansionist !== "unset") { + if (slave.boobs < 500 || slave.boobs > 1600 || slave.butt < 3 || slave.butt > 6) { + V.genderLawPass = 0; + } + } else if (slave.boobs < 500 || slave.boobs > 800 || slave.butt < 3 || slave.butt > 4) { + V.genderLawPass = 0; + } + if (V.genderLawPass === 1) { + beauty += 60; + } else { + beauty -= 10; + } + }; + + function calcMultipliersBeauty(slave) { + calcBellyBeauty(slave); + if (arcology.FSGenderRadicalist !== "unset") { + if (slave.bellyPreg >= 500 && arcology.FSRepopulationFocus === "unset" && arcology.FSRestart === "unset") { + if (slave.mpreg === 1) { + beauty = 0.9*beauty; + } else { + beauty = 0.7*beauty; + } + } + } else if (arcology.FSGenderFundamentalist === "unset") { + if (slave.preg > 10 && arcology.FSRepopulationFocus === "unset" && arcology.FSRestart === "unset") { + beauty = 0.8*beauty; + } + } + if (slave.breedingMark === 1) { + if (V.propOutcome === 1) { + beauty = 2*beauty; + } else { + beauty += 2; + } + } + if (slave.fuckdoll === 0 && V.seeAge === 1) { + calcAgeBeauty(slave); + } + if (slave.prestige + slave.pornPrestige > 0) { + calcPrestigeBeauty(slave); + } + }; + + function calcBellyBeauty(slave) { + if (slave.bellySag > 0) { + if (slave.belly < 100) { + if (arcology.FSRepopulationFocus === "unset") { + beauty -= 20; + } + } + } + if (slave.bellyImplant >= 1500) { + if (arcology.FSTransformationFetishist > 20) { + beauty += Math.min(Math.trunc(slave.bellyImplant/1000), 50); /*50*/ + } else if (arcology.FSRepopulationFocus > 60) { + if ((slave.ovaries === 0 && slave.mpreg === 0) || slave.preg < -1) { + beauty += 20; + } + } else { + if (slave.bellyImplant >= 750000) { /* multipliers */ + beauty = 0.2*beauty; + } else if (slave.bellyImplant >= 450000) { + beauty = 0.5*beauty; + } else if (slave.bellyImplant >= 300000) { + beauty = 0.7*beauty; + } else if (slave.bellyImplant >= 100000) { + beauty = 0.8*beauty; + } else if (slave.bellyImplant >= 50000) { + beauty = 0.85*beauty; + } else { + beauty = 0.9*beauty; + } + } + } + }; + + function calcAgeBeauty(slave) { + if (slave.physicalAge === V.minimumSlaveAge) { + beauty += 1; + if (slave.physicalAge === V.fertilityAge && canGetPregnant(slave) && (arcology.FSRepopulationFocus !== "unset" || arcology.FSGenderFundamentalist !== "unset") && arcology.FSRestart === "unset") { + if (slave.birthWeek === 0) { + beauty += 1.6*beauty; + } else if (slave.birthWeek < 4) { + beauty += 0.2*beauty; + } + } else { + if (slave.birthWeek === 0) { + beauty += 0.8*beauty; + } else if (slave.birthWeek < 4) { + beauty += 0.1*beauty; + } + } + } else if (slave.physicalAge === V.fertilityAge && canGetPregnant(slave) && (arcology.FSRepopulationFocus !== "unset" || arcology.FSGenderFundamentalist !== "unset") && arcology.FSRestart === "unset") { + beauty += 1; + if (slave.birthWeek === 0) { + beauty += 0.8*beauty; + } else if (slave.birthWeek < 4) { + beauty += 0.1*beauty; + } + } + }; + + function calcPrestigeBeauty(slave) { /* multipliers */ + if (slave.prestige >= 3) { + beauty += 2*beauty; + } else if (slave.prestige === 2) { + beauty += 0.5*beauty; + } else if (slave.prestige === 1) { + beauty += 0.25*beauty; + } + if (slave.pornPrestige === 3) { + beauty += beauty; + } else if (slave.pornPrestige === 2) { + beauty += 0.5*beauty; + } else if (slave.pornPrestige === 1) { + beauty += 0.1*beauty; + } + }; + + return Beauty; +})(); diff --git a/src/utility/assayWidgets.tw b/src/utility/assayWidgets.tw index d5ed14327d91d29604038d6133c3f47f75698e48..3c9b49adef97a8eb247fe5e89b6f863e06d842cc 100644 --- a/src/utility/assayWidgets.tw +++ b/src/utility/assayWidgets.tw @@ -1,1110 +1,7 @@ :: assay widgets [widget nobr] <<widget "Beauty">> - -<<run modScore($args[0])>> - -<<set $beauty = 0>> - -<<if $args[0].fuckdoll == 0>> /* NOT A FUCKDOLL */ - -<<set $beauty += 150 - ($args[0].visualAge*3) + (Math.min($args[0].health,100)/5) - ($args[0].waist/20) - ($args[0].muscles/30) +($args[0].lips/10) + ($args[0].face/5) + ($args[0].clit) + (($args[0].height-160)/10) + ($args[0].voice) + (($args[0].intelligence+$args[0].intelligenceImplant)/10) + ($args[0].entertainSkill/10) + ($args[0].whoreSkill/10) + (2*$args[0].hips)>> - -<<if $arcologies[0].FSDegradationist != "unset">> - <<set $beauty -= ($arcologies[0].FSDegradationist/10)*(($args[0].intelligence+$args[0].intelligenceImplant)/20)>> -<</if>> - -<<if $arcologies[0].FSGenderFundamentalistLawBimbo == 1>> - <<set $beauty -= ($args[0].intelligence+$args[0].intelligenceImplant)/2>> -<</if>> - -<<if $args[0].teeth == "crooked">> - <<set $beauty -= 3>> -<<elseif ($args[0].teeth == "braces" || $args[0].teeth == "cosmetic braces") && ($args[0].visualAge > 14) && ($args[0].visualAge < 18)>> - <<set $beauty += 1>> -<<elseif $args[0].teeth != "normal">> - <<set $beauty -= 1>> -<</if>> - -<<if $args[0].faceShape == "masculine">> - <<if ($arcologies[0].FSGenderRadicalist != "unset")>> - <<set $beauty -= (2-($arcologies[0].FSGenderRadicalist/25))*($args[0].face/30)>> - <<elseif ($arcologies[0].FSGenderFundamentalist != "unset")>> - <<set $beauty -= (2+($arcologies[0].FSGenderFundamentalist/25))*($args[0].face/30)>> - <<else>> - <<set $beauty -= 2*($args[0].face/30)>> - <</if>> -<<elseif $args[0].faceShape == "androgynous">> - <<if ($arcologies[0].FSGenderRadicalist != "unset")>> - <<set $beauty += 2-((1-($arcologies[0].FSGenderRadicalist/25))*($args[0].face/30))>> - <<elseif ($arcologies[0].FSGenderFundamentalist != "unset")>> - <<set $beauty += 2-((1+($arcologies[0].FSGenderFundamentalist/25))*($args[0].face/30))>> - <<else>> - <<set $beauty += 2-($args[0].face/30)>> - <</if>> -<<elseif $args[0].faceShape == "exotic">> - <<set $beauty += 2*($args[0].face/30)>> -<<elseif $args[0].faceShape == "sensual">> - <<set $beauty += 2+($args[0].face/30)>> -<<elseif $args[0].faceShape == "cute">> - <<set $beauty += 8/3>> -<</if>> - -<<if $args[0].brand != 0>> - <<if $rep > 10000>> - <<set $beauty += 1>> - <<elseif $rep < 5000>> - <<set $beauty -= 1>> - <</if>> -<</if>> - -<<if $args[0].minorInjury != 0>> - <<set $beauty -= 2>> -<</if>> - -<<if $args[0].cSec == 1>> - <<set $beauty -= 2>> -<</if>> - -<<if $args[0].nails > 0>><<set $beauty += 1>><</if>> -<<if $args[0].makeup > 0>><<set $beauty += 1>><</if>> - -<<if ($arcologies[0].FSTransformationFetishist > 20) || ($arcologies[0].FSDegradationist > 20)>> - <<if $modScore > 15 || ($piercingScore > 8 && $tatScore > 5)>> - <<set $beauty += 8+($modScore*0.25)>> - <<elseif $modScore > 7>> - <<set $beauty += $modScore-7>> - <</if>> -<<elseif ($arcologies[0].FSBodyPurist > 20) || ($arcologies[0].FSPaternalist > 20)>> - <<if $modScore <= 7>> - <<set $beauty += 10>> - <<else>> - <<set $beauty += 15-$modScore>> - <</if>> -<<else>> - <<if $modScore <= 7>> - <<set $beauty += $modScore>> - <<elseif $modScore > 15 || ($piercingScore > 8 && $tatScore > 5)>> - <<set $beauty += 11>> - <<else>> - <<set $beauty += 7+(0.5*($modScore-7))>> - <</if>> -<</if>> - -<<if $arcologies[0].FSSupremacist != "unset">> - <<if $args[0].race == $arcologies[0].FSSupremacistRace>> - <<set $beauty += ($arcologies[0].FSSupremacist/3)+($arcologies[0].FSSupremacistLawME*10)>> - <</if>> -<</if>> -<<if $arcologies[0].FSSubjugationist != "unset">> - <<if $args[0].race == $arcologies[0].FSSubjugationistRace>> - <<set $beauty -= ($arcologies[0].FSSubjugationist/2)-($arcologies[0].FSSubjugationistLawME*10)>> - <</if>> -<</if>> -<<if $arcologies[0].FSEdoRevivalist != "unset">> -<<if ($args[0].nationality == "Japanese") || ($args[0].nationality == "Edo Revivalist")>> - <<set $beauty += ($arcologies[0].FSEdoRevivalist/2)>> -<<elseif $args[0].race == "asian">> - <<set $beauty += ($arcologies[0].FSEdoRevivalist/5)>> -<<else>> - <<set $beauty -= ($arcologies[0].FSEdoRevivalist/4)>> -<</if>> -<<if $language == "Japanese" && canTalk($args[0])>> - <<if $args[0].accent > 1>> - <<set $beauty -= ($arcologies[0].FSEdoRevivalist/2)>> - <<elseif $args[0].accent > 0>> - <<set $beauty -= ($arcologies[0].FSEdoRevivalist/5)>> - <<else>> - <<set $beauty += ($arcologies[0].FSEdoRevivalist/10)>> - <</if>> -<</if>> -<</if>> -<<if $arcologies[0].FSChineseRevivalist != "unset">> -<<if ($args[0].nationality == "Chinese") || ($args[0].nationality == "Ancient Chinese Revivalist")>> - <<set $beauty += ($arcologies[0].FSChineseRevivalist/2)>> -<<elseif $args[0].race == "asian">> - <<set $beauty += ($arcologies[0].FSChineseRevivalist/5)>> -<<else>> - <<set $beauty -= ($arcologies[0].FSChineseRevivalist/4)>> -<</if>> -<<if $language == "Chinese" && canTalk($args[0])>> - <<if $args[0].accent > 1>> - <<set $beauty -= ($arcologies[0].FSChineseRevivalist/2)>> - <<elseif $args[0].accent > 0>> - <<set $beauty -= ($arcologies[0].FSChineseRevivalist/5)>> - <<else>> - <<set $beauty += ($arcologies[0].FSChineseRevivalist/10)>> - <</if>> -<</if>> -<</if>> - -<<if ($args[0].race == "white") && ($args[0].origRace == "white")>> - <<set $beauty += 4>> -<<elseif $args[0].race == "white">> - <<set $beauty += 2>> -<</if>> - -<<if $arcologies[0].FSYouthPreferentialist != "unset">> - <<set $beauty += (30-$args[0].visualAge)/(30-$minimumSlaveAge)*(($arcologies[0].FSYouthPreferentialist/2)+($arcologies[0].FSYouthPreferentialistLaw*10))>> /*60*/ -<<elseif $arcologies[0].FSMaturityPreferentialist != "unset">> - <<set $beauty += (30-$args[0].visualAge)/(30-$retirementAge)*(($arcologies[0].FSMaturityPreferentialist/2)+($arcologies[0].FSMaturityPreferentialistLaw*10))>> /*60*/ -<</if>> - -<<if ($args[0].markings != "none")>> - <<if ($args[0].markings == "beauty mark")>> - <<if ($args[0].face > 40)>> - <<set $beauty += 6>> - <<elseif ($args[0].face < -10)>> - <<set $beauty -= 6>> - <</if>> - <<elseif ($args[0].markings == "birthmark")>> - <<if ($args[0].prestige > 0 || $args[0].pornPrestige > 1)>> - <<set $beauty += 4>> - <<else>> - <<set $beauty -= 4>> - <</if>> - <<else>> - <<if ($args[0].skin == "pale") || ($args[0].skin == "fair")>> - <<set $beauty += 2>> - <<if ($args[0].hColor == "red")>> - <<set $beauty += 2>> - <</if>> - <</if>> - <</if>> -<</if>> - -<<if setup.entertainmentCareers.includes($args[0].career)>> - <<set $beauty += 20>> -<<elseif ($week-$args[0].weekAcquired >= 20) && ($args[0].entertainSkill >= 100)>> - <<set $beauty += 10>> -<</if>> - -<<if ($arcologies[0].FSBodyPurist > 20)>> /*bonus for virgin slaves*/ - <<if $args[0].vagina == 0 && $args[0].vaginalCount == 0>> - <<set $beauty += 30*($arcologies[0].FSBodyPurist/100)>> - <</if>> - <<if $args[0].anus == 0 && $args[0].analCount == 0>> - <<set $beauty += 30*($arcologies[0].FSBodyPurist/100)>> - <</if>> -<</if>> - -<<if $seeAge == 1>> -<<if $args[0].physicalAge == $minimumSlaveAge && $args[0].physicalAge == $fertilityAge && canGetPregnant($args[0]) && ($arcologies[0].FSRepopulationFocus != "unset" || $arcologies[0].FSGenderFundamentalist != "unset") && $arcologies[0].FSRestart == "unset">> - <<set $beauty += 1>> - <<if $args[0].birthWeek == 0>> - <<set $beauty += 1.6*$beauty>> - <<elseif $args[0].birthWeek < 4>> - <<set $beauty += 0.2*$beauty>> - <</if>> -<<elseif $args[0].physicalAge == $minimumSlaveAge>> - <<set $beauty += 1>> - <<if $args[0].birthWeek == 0>> - <<set $beauty += 0.8*$beauty>> - <<elseif $args[0].birthWeek < 4>> - <<set $beauty += 0.1*$beauty>> - <</if>> -<<elseif $args[0].physicalAge == $fertilityAge && canGetPregnant($args[0]) && ($arcologies[0].FSRepopulationFocus != "unset" || $arcologies[0].FSGenderFundamentalist != "unset")>> - <<set $beauty += 1>> - <<if $args[0].birthWeek == 0>> - <<set $beauty += 0.8*$beauty>> - <<elseif $args[0].birthWeek < 4>> - <<set $beauty += 0.1*$beauty>> - <</if>> -<</if>> -<</if>> - -<<else>> /* FUCKDOLL */ - -<<set $beauty += 120 - ($args[0].waist/20) - ($args[0].muscles/30) + ($args[0].lips/10) + ($args[0].clit) + (($args[0].height-160)/10) + (2*$args[0].hips)>> - -<</if>> /* CLOSES FUCKDOLL CHECK */ - -<<if ($arcologies[0].FSTransformationFetishist > 20)>> - <<if $args[0].lips > 70>> - <<if ($args[0].lipsImplant/$args[0].lips < .50)>> - <<set $beauty -= (($args[0].lips/10)+($arcologies[0].FSTransformationFetishist/20))>> - <</if>> - <</if>> -<</if>> - -<<if $args[0].butt <= 10>> - <<set $beauty += (1.5*$args[0].butt)>> /*15*/ -<<else>> - <<set $beauty += (15+($args[0].butt/4))>> /*20*/ -<</if>> - -/* Cock + Balls */ - -<<if ($arcologies[0].FSAssetExpansionist > 20) && $arcologies[0].FSGenderFundamentalist == "unset">> - <<if $args[0].dick >= 20>> - <<set $beauty += 17+($args[0].dick*($arcologies[0].FSAssetExpansionist/500))>> /*23*/ - <<elseif $args[0].dick >= 10>> - <<set $beauty += 10+($args[0].dick*($arcologies[0].FSAssetExpansionist/300))>> /*16.3*/ - <<elseif $args[0].dick > 6>> - <<set $beauty += $args[0].dick*(1+($arcologies[0].FSAssetExpansionist/100))>> /*10*/ - <</if>> - <<if $args[0].balls > 100>> - <<set $beauty += 41+($args[0].balls*($arcologies[0].FSAssetExpansionist/500))>> /*66*/ - <<elseif $args[0].balls > 80>> - <<set $beauty += 16+($args[0].balls*($arcologies[0].FSAssetExpansionist/400))>> /*41*/ - <<elseif $args[0].balls > 60>> - <<set $beauty += 6+($args[0].balls*($arcologies[0].FSAssetExpansionist/800))>> /*16*/ - <<elseif $args[0].balls > 10>> - <<set $beauty += $args[0].balls*(($arcologies[0].FSAssetExpansionist/1000))>> /*6*/ - <</if>> -<<elseif $arcologies[0].FSGenderFundamentalist != "unset">> - <<if $args[0].dick > 0>> - <<set $beauty += 3-$args[0].dick>> - <</if>> - <<if $args[0].scrotum > 0>> - <<set $beauty -= $args[0].balls*(1+($arcologies[0].FSGenderFundamentalist/200))>> - <<if $args[0].pubertyXY == 0>> - <<set $beauty += 5>> - <</if>> - <</if>> -<<elseif $arcologies[0].FSGenderRadicalist != "unset">> - <<if $args[0].dick > 20>> - <<set $beauty += 20+($args[0].dick*($arcologies[0].FSGenderRadicalist/400))>> /*27.5*/ - <<elseif $args[0].dick >= 10>> - <<set $beauty += 10+($args[0].dick*($arcologies[0].FSGenderRadicalist/200))>> /*20*/ - <<elseif $args[0].dick > 0>> - <<set $beauty += $args[0].dick*(1+($arcologies[0].FSGenderRadicalist/100))>> /*10*/ - <</if>> - <<if $args[0].scrotum > 0>> - <<if $args[0].balls > 100>> - <<set $beauty += 40+($args[0].balls*($arcologies[0].FSGenderRadicalist/2000))>> /*46.25*/ - <<elseif $args[0].balls > 60>> - <<set $beauty += 30+($args[0].balls*($arcologies[0].FSGenderRadicalist/1000))>> /*40*/ - <<elseif $args[0].balls > 10>> - <<set $beauty += 15+($args[0].balls*($arcologies[0].FSGenderRadicalist/400))>> /*30*/ - <<else>> - <<set $beauty += $args[0].balls*(1+($arcologies[0].FSGenderRadicalist/200))>> /*15*/ - <</if>> - <</if>> -<<else>> - <<set $beauty -= 2*$args[0].dick>> - <<if $args[0].scrotum > 0>> - <<set $beauty -= $args[0].balls>> - <</if>> -<</if>> - -/* bonus for dick focused genderrads */ -<<if $arcologies[0].FSGenderRadicalistLawFuta != 0>> - <<if ($arcologies[0].FSGenderRadicalistLawFuta == 1)>> - <<if $args[0].dick > 0>> - <<if $args[0].vagina > -1>> - <<if $args[0].dick > 0 && $args[0].dick <= 10>> - <<set $beauty += $args[0].dick>> /*10*/ - <</if>> - <<if $args[0].dick > 20>> - <<set $beauty += 2>> - <<elseif $args[0].dick > 10>> - <<set $beauty += 4>> - <</if>> - <</if>> - <</if>> - <<elseif ($arcologies[0].FSGenderRadicalistLawFuta == 2)>> /* erection! */ - <<if $args[0].dick > 0>> - <<if $args[0].balls > 0>> - <<if $args[0].scrotum > 0>> - <<if canAchieveErection($args[0])>> - <<set $beauty += $args[0].dick>> - <<if $args[0].balls > 0 && $args[0].balls <= 10>> - <<set $beauty += $args[0].balls>> /*10*/ - <</if>> - <<if $args[0].balls > 120>> - <<set $beauty += 14>> - <<elseif $args[0].balls > 100>> - <<set $beauty += 12>> - <<elseif $args[0].balls > 80>> - <<set $beauty += 10>> - <<elseif $args[0].balls > 60>> - <<set $beauty += 8>> - <<elseif $args[0].balls > 40>> - <<set $beauty += 6>> - <<elseif $args[0].balls > 20>> - <<set $beauty += 4>> - <<elseif $args[0].balls > 10>> - <<set $beauty += 2>> - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> - <<elseif ($arcologies[0].FSGenderRadicalistLawFuta == 3)>> - <<if $args[0].butt >= 5>> - <<set $beauty += ($args[0].butt-5)>> /*15*/ - <</if>> - <<if $args[0].hips >= 1>> - <<set $beauty += 4*($args[0].hips-1)>> /*8*/ - <<if $arcologies[0].FSSlimnessEnthusiast != "unset">> - <<set $beauty += 4*($args[0].hips-1)>> /*8*/ /* offsets the malus for big butts */ - <</if>> - <</if>> - <<if $args[0].analSkill > 60 && $args[0].anus >= 2>> - <<set $beauty += 2*($args[0].anus-2)>> /*6*/ - <<if $arcologies[0].FSSlimnessEnthusiast != "unset">> - <<set $beauty += 2*($args[0].anus-2)>> /*6*/ /* offsets the malus for big butts */ - <</if>> - <</if>> - <<elseif ($arcologies[0].FSGenderRadicalistLawFuta == 4)>> - <<if $args[0].dick > 0 && $args[0].vagina == -1 && $args[0].faceShape != "masculine">> - <<if $args[0].boobs < 500 && $args[0].dick < 4 && $args[0].balls < 4>> - <<if $arcologies[0].FSSlimnessEnthusiast == "unset">> /*balance with slimness*/ - <<set $beauty += 20>> - <<if $args[0].boobs < 300>> - <<set $beauty += 12>> - <<elseif $args[0].boobs < 400>> - <<set $beauty += 6>> - <</if>> - <</if>> - <<if $args[0].dick == 1>> - <<set $beauty += 12>> - <<elseif $args[0].dick == 2>> - <<set $beauty += 6>> - <</if>> - <<if $args[0].balls <= 2>> - <<set $beauty += 8>> - <</if>> - <<if $args[0].faceShape == "cute" && $args[0].face > 0>> /*uggos need not apply, maybe a small boost for other faceShapes*/ - <<set $beauty += ((($arcologies[0].FSGenderRadicalist/25)*($args[0].face/30))-2)>> /*gives a slightly better boost than androgynous does with gendrad boost, 15.3*/ - <</if>> - <<if $args[0].nipples == "tiny">> - <<set $beauty += 5>> - <<elseif $args[0].nipples == "cute">> - <<set $beauty += 2>> - <<else>> - <<set $beauty -= 5>> - <</if>> - <</if>> - <</if>> - <</if>> -<</if>> - -<<if ($arcologies[0].FSTransformationFetishist > 20 && $arcologies[0].FSSlimnessEnthusiast == "unset") || ($arcologies[0].FSAssetExpansionist > 20)>> - <<if $args[0].boobs <= 500>> - <<set $beauty += (0.02*($args[0].boobs-250))>> /*5*/ - <<elseif $args[0].boobs <= 1500>> - <<set $beauty += 5+(0.015*($args[0].boobs-500))>> /*20*/ - <<elseif $args[0].boobs <= 3000>> - <<set $beauty += 20+(0.01*($args[0].boobs-1500))>> /*42.5*/ - <<elseif $args[0].boobs <= 25000>> - <<set $beauty += 50+(0.005*($args[0].boobs-3000))>> /*160 - this might need to be lowered. Maybe drop the 50? Otherwise break it down more.*/ - <<else>> - <<set $beauty += 145+(0.001*($args[0].boobs-10000))>> /* 185 */ - <</if>> - <<if $args[0].butt <= 2>> - <<set $beauty += (2*($args[0].butt-1))>> /*2*/ - <<elseif $args[0].butt <= 4>> - <<set $beauty += 2+(1.5*($args[0].butt-2))>> /*5*/ - <<elseif $args[0].butt <= 10>> - <<set $beauty += 5+(1*($args[0].butt-4))>> /*11*/ - <<else>> - <<set $beauty += 7+(.5*($args[0].butt-5))>> /*14.5*/ - <</if>> /* maybe buff butts? */ -<<elseif ($arcologies[0].FSSlimnessEnthusiast > 20)>> - <<if $args[0].boobs <= 500>> - <<set $beauty += (0.08*($args[0].boobs))>> /*40 - buff me to be in line with higher end asset exp*/ - <<elseif $args[0].boobs <= 1000>> - <<set $beauty += 10>> - <<elseif $args[0].boobs <= 3000>> - <<set $beauty += 5>> - <<else>> - <<set $beauty -= 5+(0.005*($args[0].boobs-3000))>> /*-110*/ - <</if>> - <<if $args[0].butt <= 3>> - <<set $beauty += 12+(3*($args[0].butt-1))>> /*18 buff if asses get buffed*/ - <<elseif $args[0].butt <= 5>> - <<set $beauty += 9>> - <<else>> - <<set $beauty -= 10+($args[0].butt*3)>> /*-70*/ - <</if>> -<<else>> - <<if $args[0].boobs <= 1200>> - <<set $beauty += (0.02*($args[0].boobs-200))>> /*20*/ - <<elseif $args[0].boobs <= 2400>> - <<set $beauty += 20+(0.01*($args[0].boobs-1200))>> /*32*/ - <<elseif $args[0].boobs <= 3600>> - <<set $beauty += 32+(0.005*($args[0].boobs-2400))>> /*38*/ - <<elseif $args[0].boobs <= 10000>> - <<set $beauty += 38>> - <<elseif $args[0].boobs <= 25000>> - <<set $beauty += 30>> - <<else>> - <<set $beauty += 20>> - <</if>> - <<if $args[0].butt <= 2>> - <<set $beauty += (2*($args[0].butt-1))>> /*2*/ - <<elseif $args[0].butt <= 4>> - <<set $beauty += 2+(1.5*($args[0].butt-2))>> /*5*/ - <<elseif $args[0].butt <= 8>> - <<set $beauty += 2+(1.5*($args[0].butt-2))>> /*11*/ - <<else>> - <<set $beauty += 9>> - <</if>> -<</if>> -<<if $arcologies[0].FSTransformationFetishist > 20>> /* the cost of using AE's values */ - <<if ($arcologies[0].FSSlimnessEnthusiast != "unset")>> - <<if $args[0].boobs >= 400>> - <<if $args[0].boobs >= 10000>> - <<if $args[0].boobsImplant/$args[0].boobs < .75>> - <<set $beauty -= ((0.05*($args[0].boobs))+10)>> - <</if>> - <<elseif $args[0].boobs >= 2000>> - <<if $args[0].boobsImplant/$args[0].boobs < .50>> - <<set $beauty -= ((0.05*($args[0].boobs))+10)>> - <</if>> - <<elseif $args[0].boobs >= 1000>> - <<if $args[0].boobsImplant/$args[0].boobs < .25>> - <<set $beauty -= ((0.05*($args[0].boobs))+10)>> - <</if>> - <<else>> - <<if $args[0].boobsImplant/$args[0].boobs < .10>> - <<set $beauty -= ((0.05*($args[0].boobs))+10)>> - <</if>> - <</if>> - <</if>> - <<if $args[0].butt >= 3>> - <<if $args[0].buttImplant/$args[0].butt < .25>> - <<set $beauty -= ((2*($args[0].butt-1))+10)>> - <</if>> - <</if>> - <<else>> - <<if $args[0].butt >= 6>> - <<if $args[0].buttImplant/$args[0].butt < .50>> - <<set $beauty -= ((1.5*$args[0].butt)+6)>> /* will get nasty at huge sizes */ - <</if>> - <</if>> - <<if $args[0].boobs >= 600>> - <<if $args[0].boobs >= 10000>> - <<if $args[0].boobsImplant/$args[0].boobs < .75>> - <<set $beauty -= 30+(0.005*($args[0].boobs))>> /* will get nasty at huge sizes */ - <</if>> - <<elseif $args[0].boobs >= 2000>> - <<if $args[0].boobsImplant/$args[0].boobs < .50>> - <<set $beauty -= 30+(0.005*($args[0].boobs))>> /* will get nasty at huge sizes */ - <</if>> - <<elseif $args[0].boobs >= 1000>> - <<if $args[0].boobsImplant/$args[0].boobs < .25>> - <<set $beauty -= 30+(0.005*($args[0].boobs))>> /* will get nasty at huge sizes */ - <</if>> - <<else>> - <<if $args[0].boobsImplant/$args[0].boobs < .10>> - <<set $beauty -= 30+(0.005*($args[0].boobs))>> /* will get nasty at huge sizes */ - <</if>> - <</if>> - <</if>> - <</if>> -<</if>> - -<<if ($arcologies[0].FSTransformationFetishist > 20)>> - <<if $args[0].hips >= 3>> - <<set $beauty += 10>> - <</if>> -<</if>> - -<<if $args[0].hips < -1>> /* butts in general may need buffs */ - <<if $args[0].butt > 2>> - <<if $arcologies[0].FSTransformationFetishist == "unset" && $arcologies[0].FSHedonisticDecadence == "unset">> - <<set $beauty += 2-$args[0].butt>> - <<else>> - <<set $beauty += 1>> - <</if>> - <<else>> - <<set $beauty += 1>> - <</if>> -<<elseif $args[0].hips < 0>> - <<if $args[0].butt > 4>> - <<if $arcologies[0].FSTransformationFetishist == "unset" && $arcologies[0].FSHedonisticDecadence == "unset">> - <<set $beauty += 4-$args[0].butt>> - <<else>> - <<set $beauty += 1>> - <</if>> - <<else>> - <<set $beauty += 1>> - <</if>> -<<elseif $args[0].hips > 2>> - <<if $args[0].butt <= 8>> - <<set $beauty += $args[0].butt-8>> - <<else>> - <<set $beauty += 1>> - <</if>> -<<elseif $args[0].hips > 1>> - <<if $args[0].butt <= 3>> - <<set $beauty += $args[0].butt-4>> - <<else>> - <<set $beauty += 1>> - <</if>> -<<elseif $args[0].hips > 0>> - <<if $args[0].butt > 8>> - <<if $arcologies[0].FSTransformationFetishist == "unset" && $arcologies[0].FSHedonisticDecadence == "unset">> - <<set $beauty += 8-$args[0].butt>> - <<else>> - <<set $beauty += 1>> - <</if>> - <<elseif $args[0].butt <= 2>> - <<set $beauty += $args[0].butt-3>> - <<else>> - <<set $beauty += 1>> - <</if>> -<<else>> - <<if $args[0].butt > 6>> - <<if $arcologies[0].FSTransformationFetishist == "unset" && $arcologies[0].FSHedonisticDecadence == "unset">> - <<set $beauty += 6-$args[0].butt>> - <<else>> - <<set $beauty += 1>> - <</if>> - <<elseif $args[0].butt <= 1>> - <<set $beauty += $args[0].butt-2>> - <<else>> - <<set $beauty += 1>> - <</if>> -<</if>> - -<<if $args[0].boobs > 250>> -<<if $args[0].boobShape == "perky">> - <<set $beauty += 6>> -<<elseif $args[0].boobShape == "torpedo-shaped">> - <<set $beauty += 6>> -<<elseif $args[0].boobShape == "downward-facing">> - <<set $beauty -= 4>> -<<elseif $args[0].boobShape == "saggy">> - <<set $beauty -= 4>> -<</if>> -<</if>> - -<<if $args[0].nipples == "huge">> - <<set $beauty += 4>> -<<elseif $args[0].nipples == "inverted">> - <<set $beauty += 2>> -<<elseif $args[0].nipples == "puffy">> - <<set $beauty += 2>> -<<elseif $args[0].nipples == "tiny">> - <<set $beauty -= 2>> -<</if>> - -<<if $args[0].anus > 3>> - <<set $beauty -= 10+($args[0].anus*2)>> /*-20*/ -<</if>> -<<if $args[0].vagina > 3>> - <<set $beauty -= 10+($args[0].vagina*2)>> /*-20*/ -<</if>> - -<<if $arcologies[0].FSHedonisticDecadence > 20>> - <<if $args[0].weight < -95>> - <<set $beauty += -70+($args[0].weight/10)>> /*-80*/ - <<elseif $args[0].weight < -30>> - <<set $beauty += -30+($args[0].weight/3)>> /*-61*/ - <<elseif $args[0].weight < -10>> - <<set $beauty += ($args[0].weight)>> /*-30*/ - <<elseif $args[0].weight <= 10>> - <<elseif $args[0].weight <= 30>> - <<set $beauty += ($args[0].weight/2)>> /*15*/ - <<elseif $args[0].weight <= 95>> - <<set $beauty += 15+($args[0].weight/7)>> /*28.5*/ - <<elseif $args[0].weight <= 130>> - <<set $beauty += 28+($args[0].weight/10)>> /*41*/ - <<elseif $args[0].weight <= 160>> - <<set $beauty += 42+($args[0].weight/20)>> /*50*/ - <<elseif $args[0].weight <= 190>> - <<set $beauty += 50-($args[0].weight/25)>> /*42.5*/ - <<else>> - <<set $beauty += 40-($args[0].weight/20)>> /*30*/ - <</if>> -<<else>> - <<if ($args[0].weight > 130)>> - <<set $beauty -= Math.abs($args[0].weight)/5>> - <<elseif ($args[0].hips > 2)>> - <<if ($args[0].weight < -10)>> - <<set $beauty -= Math.abs($args[0].weight)/10>> - <</if>> - <<elseif ($args[0].hips > 1)>> - <<if ($args[0].weight > 95)>> - <<set $beauty -= Math.abs($args[0].weight)/15>> - <<elseif ($args[0].weight < -30)>> - <<set $beauty -= Math.abs($args[0].weight)/10>> - <</if>> - <<elseif ($args[0].hips < -1)>> - <<if ($args[0].weight < -95) || ($args[0].weight > 30)>> - <<set $beauty -= Math.abs($args[0].weight)/10>> - <</if>> - <<else>> - <<if Math.abs($args[0].weight) > 30>> - <<set $beauty -= Math.abs($args[0].weight)/10>> - <</if>> - <</if>> -<</if>> - -<<if ($arcologies[0].FSGenderRadicalist > 20 && $arcologies[0].FSGenderRadicalistLawFuta != 3) || ($arcologies[0].FSSlimnessEnthusiast > 20)>> - <<if $args[0].hips < 0>> - <<set $beauty += Math.abs($args[0].hips)>> - <</if>> -<</if>> -<<if $arcologies[0].FSRestart != "unset">> /* Eugenics does not like slaves having working balls */ - <<if $args[0].balls > 0 && $args[0].ballType == "human">> - <<set $beauty -= $args[0].balls*(1+($arcologies[0].FSRestart/100))>> - <</if>> -<</if>> -<<if $arcologies[0].FSGenderRadicalist != "unset">> - <<if ($args[0].bellyPreg >= 500) && $arcologies[0].FSRepopulationFocus == "unset" && $arcologies[0].FSRestart == "unset" && $args[0].mpreg == 0>> - <<if $args[0].mpreg == 1>> - <<set $beauty = ($beauty*0.9)>> - <<else>> - <<set $beauty = ($beauty*0.7)>> - <</if>> - <</if>> -<<elseif $arcologies[0].FSGenderFundamentalist != "unset">> - <<if $args[0].shoulders > $args[0].hips>> - <<if $args[0].boobs <= 2000*($args[0].shoulders-$args[0].hips)>> - <<set $beauty -= ($args[0].shoulders-$args[0].hips)*(1+($arcologies[0].FSGenderFundamentalist/200))>> - <</if>> - <</if>> -<<else>> - <<if $args[0].shoulders > $args[0].hips>> - <<if $args[0].boobs <= 2000*($args[0].shoulders-$args[0].hips)>> - <<set $beauty -= $args[0].shoulders-$args[0].hips>> - <</if>> - <</if>> - <<if $args[0].preg > 10 && $arcologies[0].FSRepopulationFocus == "unset" && $arcologies[0].FSRestart == "unset">> - <<set $beauty = ($beauty*0.8)>> - <</if>> -<</if>> - -<<if $arcologies[0].FSPhysicalIdealist != "unset">> - <<if $arcologies[0].FSPhysicalIdealistLaw == 1>> - <<if (Math.abs($args[0].weight) <= 30) && $args[0].health >= 20 && $args[0].muscles >= 20 && $args[0].muscles <= 50>> - <<set $beauty += ($args[0].muscles+(Math.min($args[0].health,300)/5))*($arcologies[0].FSPhysicalIdealist/100)>> - <<else>> - <<set $beauty -= 30>> - <</if>> - <<else>> - <<if $args[0].muscles > 30 || $args[0].muscles <= -5>> - <<set $beauty += ($args[0].muscles*($arcologies[0].FSPhysicalIdealist/120))>> /*+-83*/ - <</if>> - <</if>> - <<if $arcologies[0].FSPhysicalIdealistStrongFat == 1>> - <<if $args[0].weight > 10 && $args[0].weight <= 130>> - <<set $beauty += ($args[0].weight*($arcologies[0].FSPhysicalIdealist/200))>> /*65*/ - <<else>> - <<set $beauty -= Math.abs($args[0].weight)/2>> - <</if>> - <</if>> - <<if $args[0].height > Height.mean($args[0])>> - <<set $beauty += 10>> - <</if>> -<<elseif $arcologies[0].FSHedonisticDecadence != "unset">> - <<if $args[0].muscles < -10>> - <<set $beauty += (Math.abs($args[0].muscles)*($arcologies[0].FSHedonisticDecadence/160))>> /*62.5*/ - <<elseif $args[0].muscles > 5>> - <<if $arcologies[0].FSHedonisticDecadenceStrongFat == 1>> - <<set $beauty += ($args[0].muscles*($arcologies[0].FSHedonisticDecadence/200))>> /*50*/ - <<else>> - <<set $beauty -= ($args[0].muscles*($arcologies[0].FSHedonisticDecadence/200))>> /*-50*/ - <</if>> - <</if>> -<</if>> -<<if $args[0].vagina == 10>> - <<set $beauty -= 30>> -<</if>> - -<<if $arcologies[0].FSRepopulationFocus > 40>> -<<if $args[0].preg > 30>> /*limited huge boost for full term */ - <<if $args[0].broodmother > 0>> - <<set $beauty += 10*$args[0].broodmother*($arcologies[0].FSRepopulationFocus/25)>> /*40-80 limited due to constant presence. Also good breeders, but subpar mothers*/ - <<elseif $args[0].bellyPreg >= 600000>> - <<set $beauty += 15*($arcologies[0].FSRepopulationFocus/10)>> /*150*/ - <<elseif $args[0].bellyPreg >= 300000>> - <<set $beauty += 10*($arcologies[0].FSRepopulationFocus/10)>> /*100*/ - <<elseif $args[0].bellyPreg >= 120000>> - <<set $beauty += 9*($arcologies[0].FSRepopulationFocus/10)>> /*90*/ - <<else>> - <<set $beauty += 8*($arcologies[0].FSRepopulationFocus/10)>> /*80*/ - <</if>> -<<elseif $args[0].preg > 20>> - <<if $args[0].pregType >= 20>> - <<set $beauty += 10*($arcologies[0].FSRepopulationFocus/40)>> /*25*/ - <<elseif $args[0].pregType >= 10>> - <<set $beauty += 9*($arcologies[0].FSRepopulationFocus/40)>> /*22.5*/ - <<else>> - <<set $beauty += 8*($arcologies[0].FSRepopulationFocus/40)>> /*20*/ - <</if>> -<<elseif $args[0].preg > 10>> - <<if $args[0].pregType >= 20>> - <<set $beauty += 10*($arcologies[0].FSRepopulationFocus/50)>> /*20*/ - <<elseif $args[0].pregType >= 10>> - <<set $beauty += 8*($arcologies[0].FSRepopulationFocus/50)>> /*16*/ - <<else>> - <<set $beauty += 5*($arcologies[0].FSRepopulationFocus/50)>> /*10*/ - <</if>> -<<elseif $args[0].pregWeek < 0>> - <<set $beauty += $arcologies[0].FSRepopulationFocus/10>> /*10*/ -<<elseif $args[0].preg > 0 && $args[0].collar == "preg biometrics">> - <<set $beauty += $arcologies[0].FSRepopulationFocus/12>> /*8.33*/ -<<else>> - <<set $beauty -= 2*($arcologies[0].FSRepopulationFocus/5)>> /*-40*/ -<</if>> -<<if $args[0].births > 50>> - <<set $beauty += 50*($arcologies[0].FSRepopulationFocus/75)>> /*66.6*/ -<<else>> - <<set $beauty += $args[0].births*($arcologies[0].FSRepopulationFocus/75)>> -<</if>> -<<elseif $arcologies[0].FSRestart > 40>> -<<if $args[0].breedingMark == 1 && $propOutcome == 1>> - <<if $args[0].preg > 5 && $args[0].pregSource == -1>> - <<set $beauty += $arcologies[0].FSRestart>> /*100*/ - <</if>> -<<else>> -<<if $args[0].preg > 30>> - <<if $args[0].bellyPreg >= 600000>> - <<set $beauty -= 100*($arcologies[0].FSRestart/40)>> /*-250*/ - <<elseif $args[0].bellyPreg >= 300000>> - <<set $beauty -= 50*($arcologies[0].FSRestart/40)>> /*-125*/ - <<elseif $args[0].bellyPreg >= 120000>> - <<set $beauty -= 40*($arcologies[0].FSRestart/40)>> /*-100*/ - <<else>> - <<set $beauty -= 30*($arcologies[0].FSRestart/40)>> /*-75*/ - <</if>> -<<elseif $args[0].preg > 20>> - <<if $args[0].pregType >= 20>> - <<set $beauty -= 40*($arcologies[0].FSRestart/60)>> /*-66.6*/ - <<elseif $args[0].pregType >= 10>> - <<set $beauty -= 30*($arcologies[0].FSRestart/60)>> /*-50*/ - <<else>> - <<set $beauty -= 20*($arcologies[0].FSRestart/60)>> /*-33.3*/ - <</if>> -<<elseif $args[0].preg > 10>> - <<if $args[0].pregType >= 20>> - <<set $beauty -= 30*($arcologies[0].FSRestart/80)>> /*-37.5*/ - <<elseif $args[0].pregType >= 10>> - <<set $beauty -= 20*($arcologies[0].FSRestart/80)>> /*-25*/ - <<else>> - <<set $beauty -= 10*($arcologies[0].FSRestart/80)>> /*-12.5*/ - <</if>> -<<elseif $args[0].preg == -2>> - <<set $beauty += 10*($arcologies[0].FSRestart/70)>> /*14.2*/ -<<elseif $args[0].preg < 1>> - <<set $beauty += 10*($arcologies[0].FSRestart/50)>> /*20*/ -<</if>> -<<if $args[0].births > 50>> - <<set $beauty -= 50*($arcologies[0].FSRestart/50)>> /*-100*/ -<<else>> - <<set $beauty -= $args[0].births*($arcologies[0].FSRestart/50)>> -<</if>> -<</if>> -<</if>> - -<<if $args[0].bellyImplant >= 1500>> - <<if $arcologies[0].FSTransformationFetishist > 20>> - <<set $beauty += Math.min(Math.trunc($args[0].bellyImplant/1000), 50)>> /*50*/ - <<elseif $arcologies[0].FSRepopulationFocus > 60>> - <<if ($args[0].ovaries == 0 && $args[0].mpreg == 0) || $args[0].preg < -1>> - <<set $beauty += 20>> - <</if>> - <<else>> - <<if $args[0].bellyImplant >= 750000>> - <<set $beauty = ($beauty*0.2)>> - <<elseif $args[0].bellyImplant >= 450000>> - <<set $beauty = ($beauty*0.5)>> - <<elseif $args[0].bellyImplant >= 300000>> - <<set $beauty = ($beauty*0.7)>> - <<elseif $args[0].bellyImplant >= 100000>> - <<set $beauty = ($beauty*0.80)>> - <<elseif $args[0].bellyImplant >= 50000>> - <<set $beauty = ($beauty*0.85)>> - <<else>> - <<set $beauty = ($beauty*0.9)>> - <</if>> - <</if>> -<</if>> - -<<if $args[0].bellySag > 0>> -<<if $args[0].belly < 100>> -<<if $arcologies[0].FSRepopulationFocus != "unset">> -<<else>> - <<set $beauty -= 20>> -<</if>> -<</if>> -<</if>> - -<<if $args[0].pubertyXX == 1>> - <<set $beauty += 5>> -<</if>> -<<if $args[0].pubertyXY == 0 && $args[0].physicalAge > $potencyAge && $args[0].balls > 0>> - <<set $beauty += 10>> -<</if>> - -<<if ($args[0].butt > 4) && ($args[0].boobs > 800)>> - <<if $arcologies[0].FSSlimnessEnthusiast == "unset">> - <<set $beauty += 1>> - <</if>> - <<if $arcologies[0].FSAssetExpansionist != "unset">> - <<set $beauty += ($arcologies[0].FSAssetExpansionist/20)>> - <<if canTalk($args[0])>> - <<if $args[0].voice == 3>> - <<set $beauty += ($arcologies[0].FSAssetExpansionist/40)>> - <</if>> - <</if>> - <</if>> -<</if>> - -<<if ($args[0].boobs < 500) && ($args[0].butt < 3)>> - <<if ($args[0].muscles <= 30) && $arcologies[0].FSPhysicalIdealist == "unset" && ($args[0].weight <= 10) && $arcologies[0].FSHedonisticDecadence == "unset">> - <<set $beauty += 40>> - <<if $arcologies[0].FSSlimnessEnthusiast > 20>> - <<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/20)>> - <<if canTalk($args[0])>> - <<if $args[0].voice == 3>> - <<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/40)>> - <</if>> - <</if>> - <</if>> - <<elseif $arcologies[0].FSPhysicalIdealist != "unset">> /* no muscle malus for muscle loving societies */ - <<if $arcologies[0].FSPhysicalIdealistStrongFat == 1 && ($args[0].weight <= 30)>> /* reduced weight malus for fat loving societies */ - <<set $beauty += 40>> - <<if $arcologies[0].FSSlimnessEnthusiast > 20>> - <<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/20)>> - <<if canTalk($args[0]) && $args[0].voice == 3>> - <<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/40)>> - <</if>> - <</if>> - <<elseif ($args[0].weight <= 10)>> - <<set $beauty += 40>> - <<if $arcologies[0].FSSlimnessEnthusiast > 20>> - <<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/20)>> - <<if canTalk($args[0]) && $args[0].voice == 3>> - <<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/40)>> - <</if>> - <</if>> - <</if>> - <<elseif $arcologies[0].FSHedonisticDecadence != "unset" && ($args[0].weight <= 30)>> /* reduced weight malus for fat loving societies */ - <<if $arcologies[0].FSHedonisticDecadenceStrongFat == 1>> /* no muscle malus for muscle loving societies */ - <<set $beauty += 40>> - <<if $arcologies[0].FSSlimnessEnthusiast > 20>> - <<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/20)>> - <<if canTalk($args[0]) && $args[0].voice == 3>> - <<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/40)>> - <</if>> - <</if>> - <<elseif ($args[0].muscles <= 30)>> - <<set $beauty += 40>> - <<if $arcologies[0].FSSlimnessEnthusiast > 20>> - <<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/20)>> - <<if canTalk($args[0]) && $args[0].voice == 3>> - <<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/40)>> - <</if>> - <</if>> - <</if>> - <</if>> -<</if>> - - -<<if $arcologies[0].FSGenderFundamentalistLawBeauty + $arcologies[0].FSGenderRadicalistLawBeauty > 0>> - <<set $genderLawPass = 1>> - <<if $arcologies[0].FSPhysicalIdealist == "unset" && $arcologies[0].FSHedonisticDecadenceStrongFat == 0 && $args[0].muscles > 30>> /*muscle check*/ - <<set $genderLawPass = 0>> - <</if>> - <<if $genderLawPass == 1>> - <<if $arcologies[0].FSHedonisticDecadence != "unset" || $arcologies[0].FSPhysicalIdealistStrongFat == 1>> /*weight check*/ - <<if $args[0].weight > 130 || $args[0].weight <= -30>> - <<set $genderLawPass = 0>> - <</if>> - <<elseif (Math.abs($args[0].weight) > 30)>> - <<set $genderLawPass = 0>> - <</if>> - <</if>> - <<if $genderLawPass == 1>> /*asset check*/ - <<if $arcologies[0].FSAssetExpansionist != "unset">> - <<if $args[0].boobs < 500 || $args[0].boobs > 1600 || $args[0].butt < 3 || $args[0].butt > 6>> - <<set $genderLawPass = 0>> - <</if>> - <<elseif $args[0].boobs < 500 || $args[0].boobs > 800 || $args[0].butt < 3 || $args[0].butt > 4>> - <<set $genderLawPass = 0>> - <</if>> - <</if>> - <<if $genderLawPass == 1>> - <<set $beauty += 60>> - <<else>> - <<set $beauty -= 10>> - <</if>> -<</if>> - -<<if $arcologies[0].FSSlimnessEnthusiastLaw == 1>> - <<if ($args[0].boobs < 300) && ($args[0].butt <= 1) && ($args[0].waist <= 10)>> - <<set _slimPass = 1>> - <<if $arcologies[0].FSPhysicalIdealist == "unset" && $arcologies[0].FSHedonisticDecadenceStrongFat == 0 && $args[0].muscles > 30>> /*muscle check*/ - <<set _slimPass = 0>> - <</if>> - <<if _slimPass == 1>> - <<if $arcologies[0].FSHedonisticDecadence != "unset" || $arcologies[0].FSPhysicalIdealistStrongFat == 1>> /*weight check*/ - <<if $args[0].weight > 30>> - <<set _slimPass = 0>> - <</if>> - <<elseif $args[0].weight > 10>> - <<set _slimPass = 0>> - <</if>> - <</if>> - <<if _slimPass == 1>> - <<set $beauty += 40+($arcologies[0].FSSlimnessEnthusiast/20)>> /*45*/ - <<else>> - <<set $beauty -= ($arcologies[0].FSSlimnessEnthusiast/20)>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSHedonisticDecadenceLaw2 == 1>> - <<if ($args[0].boobs >= 2000) && ($args[0].butt >= 5) && ($args[0].weight > 95)>> - <<set $beauty += 5+($arcologies[0].FSHedonisticDecadence/20)>> /*10*/ - <<else>> - <<set $beauty -= 15+($arcologies[0].FSHedonisticDecadence/20)>> /*-20*/ - <</if>> -<</if>> - -<<if ($args[0].boobsImplant == 0) && ($args[0].buttImplant == 0) && ($args[0].waist >= -95) && ($args[0].lipsImplant == 0) && ($args[0].faceImplant < 30) && ($args[0].bellyImplant == -1) && (Math.abs($args[0].shouldersImplant) < 2) && (Math.abs($args[0].hipsImplant) < 2)>> - <<if def $pure>><<set $pure += 1>><<else>><<set $pure = 1>><</if>> - <<if $arcologies[0].FSBodyPurist != "unset">> - <<set $beauty += ($arcologies[0].FSBodyPurist/5)>> - <</if>> - <<if $arcologies[0].FSTransformationFetishist == "unset">> - <<set $beauty += 2>> - <</if>> -<<else>> - <<if $arcologies[0].FSTransformationFetishist != "unset">> - <<set $beauty += ($arcologies[0].FSTransformationFetishist/40)>> - <</if>> -<</if>> - -<<if $arcologies[0].FSTransformationFetishist != "unset">> - <<if (Math.abs($args[0].shouldersImplant) > 1)>> - <<set $beauty += ($arcologies[0].FSTransformationFetishist/20)+(Math.abs($args[0].shouldersImplant))>> - <</if>> - <<if (Math.abs($args[0].hipsImplant) > 1)>> - <<set $beauty += ($arcologies[0].FSTransformationFetishist/20)+(Math.abs($args[0].hipsImplant))>> - <</if>> - <<if $args[0].race != $args[0].origRace>> - <<set $beauty += ($arcologies[0].FSTransformationFetishist/20)>> - <</if>> - <<if $args[0].faceImplant > 95 && $args[0].face > 40>> - <<set $beauty += ($arcologies[0].FSTransformationFetishist/4)>> - <</if>> - <<if $args[0].nipples == "fuckable">> - <<set $beauty += ($arcologies[0].FSTransformationFetishist/10)>> - <</if>> -<</if>> - -<<if $arcologies[0].FSBodyPurist != "unset">> - <<if $args[0].faceImplant > 5>> - <<set $beauty -= ($arcologies[0].FSBodyPurist/100)*($args[0].faceImplant/10)>> - <</if>> - <<if $args[0].race == $args[0].origRace>> - <<set $beauty -= ($arcologies[0].FSBodyPurist/20)>> - <</if>> -<<elseif $arcologies[0].FSTransformationFetishist == "unset">> - <<if $args[0].faceImplant > 30>> - <<set $beauty -= ($args[0].faceImplant-30)/10>> - <</if>> -<</if>> - -<<if !canTalk($args[0])>> - <<set $beauty -= 2>> -<<else>> - <<if ($args[0].accent >= 3)>> - <<set $beauty -= 1>> - <<elseif ($args[0].accent == 1)>> - <<set $beauty += 1>> - <</if>> -<</if>> - -<<if ($args[0].physicalAge < 11)>> - <<set $beauty += 2>> -<<elseif ($args[0].physicalAge < 13)>> -<<elseif $args[0].underArmHStyle == "neat">> -<<elseif $args[0].underArmHStyle == "hairless">> - <<set $beauty += 2>> -<<elseif $args[0].underArmHStyle == "bald">> - <<set $beauty += 2>> -<<elseif $args[0].underArmHStyle == "waxed">> - <<set $beauty += 2>> -<<elseif $args[0].underArmHStyle == "shaved">> - <<set $beauty += 2>> -<<elseif $args[0].underArmHStyle == "bushy">> - <<if $arcologies[0].FSBodyPurist > 0>> - <<set $beauty += 4>> - <<else>> - <<set $beauty -= 2>> - <</if>> -<</if>> - -<<if ($args[0].physicalAge < 11)>> - <<set $beauty += 2>> -<<elseif ($args[0].physicalAge < 13)>> -<<elseif $args[0].pubicHStyle == "neat">> -<<elseif $args[0].pubicHStyle == "in a strip">> -<<elseif $args[0].pubicHStyle == "hairless">> - <<set $beauty += 2>> -<<elseif $args[0].pubicHStyle == "bald">> - <<set $beauty += 2>> -<<elseif $args[0].pubicHStyle == "waxed">> - <<set $beauty += 2>> -<<elseif $args[0].pubicHStyle == "bushy">> - <<if $arcologies[0].FSBodyPurist > 0>> - <<set $beauty += 2>> - <<else>> - <<set $beauty -= 4>> - <</if>> -<<elseif $args[0].pubicHStyle == "bushy in the front and neat in the rear">> - <<if $arcologies[0].FSBodyPurist > 0>> - <<set $beauty += 4>> - <<else>> - <<set $beauty -= 2>> - <</if>> -<<elseif $args[0].pubicHStyle == "very bushy">> - <<if $arcologies[0].FSBodyPurist > 0>> - <<set $beauty += 2>> - <<else>> - <<set $beauty -= 6>> - <</if>> -<</if>> - -<<if $args[0].amp == 0>> -<<elseif $args[0].amp == 1>> - <<set $beauty -= 10>> -<<elseif $args[0].amp == -3>> -<<elseif $args[0].amp == -5>> -<<else>> - <<set $beauty -= 2>> -<</if>> - -<<if $arcologies[0].FSChattelReligionistCreed == 1>> -<<if $nicaeaAssignment == $args[0].assignment>> - <<set $beauty += $nicaeaPower*2>> -<</if>> -<</if>> - -<<if $args[0].prestige >= 3>> - <<set $beauty += ($beauty*2)>> -<<elseif $args[0].prestige == 2>> - <<set $beauty += ($beauty*0.5)>> -<<elseif $args[0].prestige == 1>> - <<set $beauty += ($beauty*0.25)>> -<</if>> -<<if $args[0].pornPrestige == 3>> - <<set $beauty += ($beauty*1.0)>> -<<elseif $args[0].pornPrestige == 2>> - <<set $beauty += ($beauty*0.5)>> -<<elseif $args[0].pornPrestige == 1>> - <<set $beauty += ($beauty*0.1)>> -<</if>> - -<<if $args[0].breedingMark == 1>> - <<if $propOutcome == 1>> - <<set $beauty = Math.trunc($beauty*2)>> - <<else>> - <<set $beauty += 2>> - <</if>> -<</if>> - -<<set $beauty = Math.max(1, Math.trunc($beauty*0.5))>> - + <<run Beauty($args[0])>> <</widget>> <<widget "Deadliness">>