diff --git a/devNotes/VersionChangeLog-Premod+LoliMod.txt b/devNotes/VersionChangeLog-Premod+LoliMod.txt index 4e347a54b9d6988786dbd83e0f74b4e101d45c55..281e51f5726562e81291fa15f3eb455d9031d113 100644 --- a/devNotes/VersionChangeLog-Premod+LoliMod.txt +++ b/devNotes/VersionChangeLog-Premod+LoliMod.txt @@ -2,8 +2,42 @@ 0.10.7.1-0.10.x +10/17/2018 + + 20 + -fixes + -pussy licking slave interact + +10/16/2018 + + 19 + -fixes + +10/15/2018 + + 18 + -fixes + -slave creation is now JS based + -added genes as a check to the RA + + 17 + -fixes + + 16 + -fixes + -chem no longer affects miscarriage rates. + +10/14/2018 + + 15 + -several new gigantic belly focused slave interactions + -fixes + 10/13/2018 + 14 + -fixes + 13 -added premature birth and miscarriage (optional) -fixes diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt index f0051b1444faacc4020154320b4e4a53f45bcf1b..8f155e56765faeae84fac7ea9143b2159dbf3615 100644 --- a/devNotes/twine JS.txt +++ b/devNotes/twine JS.txt @@ -14141,7 +14141,7 @@ window.DefaultRules = (function() { } } } else if ((rule.diet == "cleansing")) { - if (((slave.diet !== "cleansing") && (slave.health < 100))) { + if ((slave.diet !== "cleansing") && (slave.health < 90) && (slave.chem >= 10)) { slave.diet = "cleansing"; r += `<br>${slave.slaveName} has been put on a diet of cleansers.`; } @@ -15619,6 +15619,7 @@ window.rulesAssistantOptions = (function() { ["Devotion", "devotion"], ["Trust", "trust"], ["Health", "health"], + ["Sex", "genes"], ["Sex drive", "energy"], ["Height", "height"], ["Weight", "weight"], @@ -15688,6 +15689,7 @@ window.rulesAssistantOptions = (function() { return [ "fetish", "amp", + "genes", ].includes(attribute); } @@ -15853,6 +15855,7 @@ window.rulesAssistantOptions = (function() { return "Insert a valid JSON array. Known values: " + { "fetish": "buttslut, cumslut, masochist, sadist, dom, submissive, boobs, pregnancy, none (AKA vanilla)", "amp": "Amputated: 1, Not amputated: 0", + "genes": "XX, XY", }[attribute]; } @@ -29286,50 +29289,6 @@ window.GetVignette = function GetVignette(slave) { /*:: Slave Generation JS [script]*/ -window.generateAge = function generateAge(slave) { - const V = State.variables; - - if (V.activeSlaveOneTimeMaxAge > 998) { - V.activeSlaveOneTimeMaxAge = (V.pedo_mode === 1) ? 18 : 42; - } else if (V.pedo_mode === 1 && V.one_time_age_overrides_pedo_mode === 0 && V.activeSlaveOneTimeMaxAge > 18) { - V.activeSlaveOneTimeMaxAge = 18; - } - if (V.retirementAge < V.activeSlaveOneTimeMaxAge) { - V.activeSlaveOneTimeMaxAge = (V.retirementAge - 1); - } - if (V.activeSlaveOneTimeMinAge < V.minimumSlaveAge) { - V.activeSlaveOneTimeMinAge = V.minimumSlaveAge; - } else if (V.pedo_mode === 1 && V.one_time_age_overrides_pedo_mode === 0) { - V.activeSlaveOneTimeMinAge = V.minimumSlaveAge; - } - if (V.activeSlaveOneTimeMaxAge < V.activeSlaveOneTimeMinAge) { - V.activeSlaveOneTimeMaxAge = V.activeSlaveOneTimeMinAge; - } - if (V.activeSlaveOneTimeMaxAge >= 30 && V.arcologies[0].FSMaturityPreferentialist !== "unset" && V.ageAdjustOverride !== 1) { - V.activeSlaveOneTimeMaxAge += 10; - } - slave.actualAge = jsRandom(V.activeSlaveOneTimeMinAge, V.activeSlaveOneTimeMaxAge); - const secondAgeRoll = jsRandom(V.activeSlaveOneTimeMinAge, V.activeSlaveOneTimeMaxAge); - if (V.arcologies[0].FSYouthPreferentialist !== "unset" && V.arcologies[0].FSYouthPreferentialist >= jsRandom(1, 100)) { - slave.actualAge = Math.min(slave.actualAge, secondAgeRoll); - } else if (V.arcologies[0].FSMaturityPreferentialist !== "unset" && V.arcologies[0].FSMaturityPreferentialist >= jsRandom(1, 100)) { - slave.actualAge = Math.max(slave.actualAge, secondAgeRoll); - } - if (slave.actualAge >= V.retirementAge) { - slave.actualAge = (V.retirementAge - 2); - } - V.activeSlaveOneTimeMinAge = 0; - V.activeSlaveOneTimeMaxAge = 999; - V.one_time_age_overrides_pedo_mode = 0; - V.ageAdjustOverride = 0; - slave.visualAge = slave.actualAge; - slave.physicalAge = slave.actualAge; - slave.ovaryAge = slave.actualAge; - slave.age = slave.actualAge; /*compatibility*/ - slave.pubertyAgeXX = V.fertilityAge; - slave.pubertyAgeXY = V.potencyAge; -}; - window.nationalityToRace = function nationalityToRace(slave) { slave.race = hashChoice(setup.raceSelector[slave.nationality] || setup.raceSelector[""]); }; @@ -30584,43 +30543,1789 @@ window.randomizeAttraction = function randomizeAttraction(slave) { slave.attrXY = Math.clamp(slave.attrXY + jsRandom(-5, 5), 0, 100); }; -window.disabilityRoll = function disabilityRoll(slave) { - const V = State.variables; - let disList = []; - disList.push("hearNot"); - disList.push("seeNot"); - disList.push("speakNot"); - let disableCount = 0; - if (V.oneTimeDisableDisability === 0) { - while (disList.length > 0) { - let rolled = jsEither(disList); - switch (rolled) { - case "hearNot": - if ((jsRandom(1,100)-(disableCount*2)) > 90) { - slave.hears = -2; +window.BaseSlave = function BaseSlave() { + State.variables.activeSlave = { + slaveName: "blank", + slaveSurname: 0, + birthName: "blank", + birthSurname: 0, + genes: "XX", + pronoun: "she", + possessive: "her", + possessivePronoun: "hers", + objectReflexive: "herself", + object: "her", + noun: "girl", + weekAcquired: 0, + origin: 0, + career: 0, + ID: 0, + prestige: 0, + pornFeed: 0, + pornFame: 0, + pornFameSpending: 0, + pornPrestige: 0, + pornPrestigeDesc: 0, + pornFameType: "none", + pornFocus: "none", + pornTypeGeneral: 0, + pornTypeFuckdoll: 0, + pornTypeRape: 0, + pornTypePreggo: 0, + pornTypeBBW: 0, + pornTypeGainer: 0, + pornTypeStud: 0, + pornTypeLoli: 0, + pornTypeDeepThroat: 0, + pornTypeStruggleFuck: 0, + pornTypePainal: 0, + pornTypeTease: 0, + pornTypeRomantic: 0, + pornTypePervert: 0, + pornTypeCaring: 0, + pornTypeUnflinching: 0, + pornTypeSizeQueen: 0, + pornTypeNeglectful: 0, + pornTypeCumAddict: 0, + pornTypeAnalAddict: 0, + pornTypeAttentionWhore: 0, + pornTypeBreastGrowth: 0, + pornTypeAbusive: 0, + pornTypeMalicious: 0, + pornTypeSelfHating: 0, + pornTypeBreeder: 0, + pornTypeSub: 0, + pornTypeCumSlut: 0, + pornTypeAnal: 0, + pornTypeHumiliation: 0, + pornTypeBoobs: 0, + pornTypeDom: 0, + pornTypeSadist: 0, + pornTypeMasochist: 0, + pornTypePregnancy: 0, + prestigeDesc: 0, + recruiter: 0, + relation: 0, + relationTarget: 0, + relationship: 0, + relationshipTarget: 0, + rivalry: 0, + rivalryTarget: 0, + subTarget: 0, + father: 0, + mother: 0, + daughters: 0, + sisters: 0, + canRecruit: 0, + choosesOwnAssignment: 0, + assignment: "rest", + assignmentVisible: 1, + sentence: 0, + training: 0, + toyHole: "all her holes", + indenture: -1, + indentureRestrictions: 0, + birthWeek: random(0,51), + actualAge: 18, + visualAge: 18, + physicalAge: 18, + ovaryAge: 18, + ageImplant: 0, + health: 0, + minorInjury: 0, + trust: 0, + oldTrust: 0, + devotion: 0, + oldDevotion: 0, + weight: 0, + muscles: 0, + height: 170, + heightImplant: 0, + nationality: "slave", + race: "white", + origRace: "white", + markings: "none", + eyes: 1, + eyeColor: "brown", + origEye: "brown", + pupil: "circular", + sclerae: "white", + eyewear: "none", + hears: 0, + earwear: "none", + earImplant: 0, + origHColor: "brown", + hColor: "brown", + pubicHColor: "brown", + underArmHColor: "brown", + eyebrowHColor: "brown", + origSkin: "light", + skin: "light", + hLength: 60, + eyebrowFullness: "natural", + hStyle: "short", + pubicHStyle: "neat", + underArmHStyle: "neat", + eyebrowHStyle: "natural", + waist: 0, + corsetPiercing: 0, + PLimb: 0, + amp: 0, + heels:0, + voice: 2, + voiceImplant: 0, + accent: 0, + shoulders: 0, + shouldersImplant: 0, + boobs: 0, + boobsImplant: 0, + boobsImplantType: 0, + boobShape: "normal", + nipples: "cute", + nipplesPiercing: 0, + nipplesAccessory: 0, + areolae: 0, + areolaePiercing: 0, + areolaeShape: "circle", + boobsTat: 0, + lactation: 0, + lactationAdaptation: 0, + milk: 0, + cum: 0, + hips: 0, + hipsImplant: 0, + butt: 0, + buttImplant: 0, + buttImplantType: 0, + buttTat: 0, + face: 0, + faceImplant: 0, + faceShape: "normal", + lips: 15, + lipsImplant: 0, + lipsPiercing: 0, + lipsTat: 0, + teeth: "normal", + tonguePiercing: 0, + vagina: 0, + vaginaLube: 0, + vaginaPiercing: 0, + vaginaTat: 0, + preg: -1, + pregSource: 0, + pregType: 0, + pregAdaptation: 50, + superfetation: 0, + ovaImplant: 0, + broodmother: 0, + broodmotherFetuses: 0, + broodmotherOnHold: 0, + broodmotherCountDown: 0, + labor: 0, + births: 0, + cSec: 0, + bellyAccessory: "none", + labia: 0, + clit: 0, + clitPiercing: 0, + clitSetting: "vanilla", + foreskin: 0, + anus: 0, + dick: 0, + analArea: 1, + dickPiercing: 0, + dickTat: 0, + prostate: 0, + balls: 0, + scrotum: 0, + ovaries: 0, + anusPiercing: 0, + anusTat: 0, + makeup: 0, + nails: 0, + brand: 0, + brandLocation: 0, + earPiercing: 0, + nosePiercing: 0, + eyebrowPiercing: 0, + navelPiercing: 0, + shouldersTat: 0, + armsTat: 0, + legsTat: 0, + backTat: 0, + stampTat: 0, + vaginalSkill: 0, + oralSkill: 0, + analSkill: 0, + whoreSkill: 0, + entertainSkill: 0, + combatSkill: 0, + livingRules: "spare", + speechRules: "restrictive", + releaseRules: "restrictive", + relationshipRules: "restrictive", + standardPunishment: "situational", + standardReward: "situational", + useRulesAssistant: 1, + diet: "healthy", + dietCum: 0, + dietMilk: 0, + tired: 0, + hormones: 0, + drugs: "no drugs", + curatives: 0, + chem: 0, + aphrodisiacs: 0, + addict: 0, + fuckdoll: 0, + choosesOwnClothes: 0, + clothes: "no clothing", + collar: "none", + shoes: "none", + vaginalAccessory: "none", + dickAccessory: "none", + legAccessory: "none", + buttplug: "none", + buttplugAttachment: "none", + intelligence: 0, + intelligenceImplant: 0, + energy: 50, + need: 0, + attrXX: 0, + attrXY: 0, + attrKnown: 0, + fetish: "none", + fetishStrength: 70, + fetishKnown: 0, + behavioralFlaw: "none", + behavioralQuirk: "none", + sexualFlaw: "none", + sexualQuirk: "none", + oralCount: 0, + vaginalCount: 0, + analCount: 0, + mammaryCount: 0, + penetrativeCount: 0, + publicCount: 0, + pitKills: 0, + customTat: "", + customLabel: "", + customDesc: "", + customTitle: "", + customTitleLisp: "", + rudeTitle: 0, + customImage: 0, + currentRules: [], + bellyTat: 0, + induce: 0, + mpreg: 0, + inflation: 0, + inflationType: "none", + inflationMethod: 0, + milkSource: 0, + cumSource: 0, + burst: 0, + pregKnown: 0, + pregWeek: 0, + belly: 0, + bellyPreg: 0, + bellyFluid: 0, + bellyImplant: -1, + bellySag: 0, + bellySagPreg: 0, + bellyPain: 0, + cervixImplant: 0, + birthsTotal: 0, + pubertyAgeXX: 13, + pubertyAgeXY: 13, + scars: 0, + breedingMark: 0, + bodySwap: 0, + HGExclude: 0, + ballType: "human", + eggType: "human", + reservedChildren: 0, + reservedChildrenNursery: 0, + choosesOwnChastity: 0, + pregControl: "none", + readyLimbs: [], + ageAdjust: 0, + bald: 0, + origBodyOwner: "", + origBodyOwnerID: 0, + death: "", + hormoneBalance: 0, + onDiet: 0, + breastMesh: 0, + slavesFathered: 0, + PCChildrenFathered: 0, + slavesKnockedUp: 0, + PCKnockedUp: 0, + prematureBirth: 0, + premature: 0, + origSkin: "white", + vasectomy: 0, + haircuts: 0, + newGamePlus: 0, + skillHG: 0, + skillRC: 0, + skillBG: 0, + skillMD: 0, + skillDJ: 0, + skillNU: 0, + skillTE: 0, + skillAT: 0, + skillMT: 0, + skillST: 0, + skillMM: 0, + skillWA: 0, + skillS: 0, + skillE: 0, + skillW: 0, + tankBaby: 0, + inducedNCS: 0, + NCSyouthening: 0, + override_Race: 0, + override_Skin: 0, + override_Eye_Color: 0, + override_H_Color: 0, + override_Pubic_H_Color: 0, + override_Arm_H_Color: 0, + override_Brow_H_Color: 0, + missingEyes: 0, + missingArms: 0, + missingLegs: 0 + }; +}; + +window.generatePronouns = function generatePronouns(slave) { + if (slave.fuckdoll > 0) { + slave.pronoun = "it"; + slave.possessivePronoun = "its"; + slave.possessive = "its"; + slave.object = "it"; + slave.objectReflexive = "itself"; + slave.noun = "toy"; + } else if (slave.dick > 0 && slave.vagina == -1 && State.variables.diversePronouns == 1) { + slave.pronoun = "he"; + slave.possessivePronoun = "his"; + slave.possessive = "his"; + slave.object = "him"; + slave.objectReflexive = "himself"; + slave.noun = "boy"; + } else { + slave.pronoun = "she"; + slave.possessivePronoun = "hers"; + slave.possessive = "her"; + slave.object = "her"; + slave.objectReflexive = "herself"; + slave.noun = "girl"; + } +}; + +/*:: Generate New Slave JS [script]*/ + +window.GenerateNewSlave = (function(){ + 'use strict'; + let V, slave; + + function GenerateNewSlave(sex) { + V = State.variables; + BaseSlave(); + slave = V.activeSlave; + + preGenCombinedStats(); + if (!sex) { + if (jsRandom(0,99) < V.seeDicks) { + GenerateXYSlave(); + } else if (V.seeDicks > 0) { + var femaleSlaveGen = 80; + if (V.arcologies[0].FSGenderFundamentalistSMR == 1 || V.arcologies[0].FSRepopulationFocusSMR == 1) { + femaleSlaveGen = 90; + } else if (V.arcologies[0].FSGenderRadicalist != "unset") { + femaleSlaveGen = 50; + } + if (jsRandom(1,100) > femaleSlaveGen && jsRandom(0,99) < V.seeDicks) { + GenerateXYSlave(); + } else { + GenerateXXSlave(); } - disList.delete("hearNot"); - disableCount++; + } else { + GenerateXXSlave(); + } + } else if (sex == "XY") { + GenerateXYSlave(); + } else { + GenerateXXSlave(); + } + + postGenCleanup(); + }; + + function preGenCombinedStats() { + slave.ID = V.IDNumber++; + slave.weekAcquired = V.week; + slave.canRecruit = 1; + slave.devotion = jsRandom(-90,-60); + slave.trust = jsRandom(-45,-25); + slave.weight = jsRandom(-100,180); + slave.health = jsRandom(-50,50); + + WombInit(slave); + generateAge(); + generateIntelligence(); + generateCareer(); + generateNationality(); /* includes race selection */ + generateAccent(); + nationalityToName(slave); + generateRacialTraits(); + }; + + function postGenCleanup() { + generateBoobTweaks(); /* split this up for female vs. male? */ + generateSkills(); + generateDisabilities(); + generatePronouns(slave); + if (passage() == "Slave Markets" && V.slaveMarket == "corporate" && V.captureUpgradeRace != "unselected" && V.captureUpgradeRace != "none") { + slave.race = V.captureUpgradeRace; + } + slave.origRace = slave.race; + slave.origEye = slave.eyeColor; + slave.origHColor = slave.hColor; + slave.origSkin = slave.skin; + }; + + function GenerateXXSlave() { + slave.ovaries = 1; + slave.pubertyXY = 0; + slave.energy = jsRandom(1,85); + /* Superfetation as rare genetic disorder 1 from 100, not active for now. + if (jsRandom(0,99) < 1) { + slave.superfetation = 1; + } + */ + + generateXXBodyProportions(); + generateVagina(); + generateXXPreferences(); + generateXXButt(); + generateXXBoobs(); + generateXXFace(); + generateXXPregAdaptation(); + generateXXVoice(); + generateXXTeeth(); + generateXXMods(); + generateXXBodyHair(); + generateXXPuberty(); + }; + + function GenerateXYSlave() { + slave.genes = "XY"; + slave.hLength = 10; + slave.prostate = 1; + slave.pubertyXX = 0; + slave.energy = jsRandom(15,90); + + generateXYBodyProportions(); + generateDick(); + generateCircumcision(); + generateXYPreferences(); /* must happen after genitalia generation */ + generateXYButt(); /* must happen after preferences */ + generateXYBoobs(); + generateXYFace(); + generateXYPregAdaptation(); + generateXYVoice(); + generateXYTeeth(); + generateXYMods(); + generateXYBodyHair(); + generateXYPuberty(); + }; + + function generateXXBodyProportions() { + slave.height = Math.round(Height.random(slave)); + if (slave.height >= Height.mean(slave) * 170/162.5) { + slave.hips = jsEither([-1, 0, 0, 1, 1, 2, 2]); + slave.shoulders = jsEither([-1, -1, 0, 0, 0, 1]); + } else { + slave.hips = jsEither([-1, 0, 0, 0, 1, 1, 2]); + slave.shoulders = jsEither([-2, -1, -1, 0, 0, 1]); + } + if (slave.physicalAge <= 11) { + slave.hips = jsEither([-2, -2, -1, -1, 0]); + } else if (slave.physicalAge <= 13) { + slave.hips = jsEither([-2, -1, -1, 0, 1]); + } + if (slave.weight < -30) { + slave.waist = jsRandom(-55,0); + } else if (slave.physicalAge < 13) { + slave.waist = jsRandom(-25,25); + } else if (slave.weight <= 30) { + slave.waist = jsRandom(-45,45); + } else if (slave.weight <= 160) { + slave.waist = jsRandom(0,55); + } else { + slave.waist = jsRandom(50,100); + } + }; + + function generateXYBodyProportions() { + slave.height = Math.round(Height.random(slave)); + if (slave.physicalAge <= 13) { + if (slave.height > Height.mean(slave) * 170/172.5) { + slave.hips = jsEither([-2, -1, -1, 0, 1]); + slave.shoulders = jsEither([-1, -1, 0, 0, 0, 1]); + } else { + slave.hips = jsEither([-2, -2, -1, -1, 0]); + slave.shoulders = jsEither([-2, -1, -1, 0, 0, 1]); + } + } else { + if (slave.height > Height.mean(slave) * 170/172.5) { + slave.hips = jsEither([-2, -1, -1, 0, 1]); + slave.shoulders = jsEither([-1, 0, 1, 1, 2, 2]); + } else { + slave.hips = jsEither([-2, -2, -1, -1, 0]); + slave.shoulders = jsEither([-1, 0, 0, 1, 1, 2]); + } + } + if (slave.physicalAge < 13) { + slave.waist = jsRandom(-15,25); + } else if (slave.weight < -30) { + slave.waist = jsRandom(-45,45); + } else if (slave.weight <= 30) { + slave.waist = jsRandom(-15,65); + } else if (slave.weight <= 160) { + slave.waist = jsRandom(5,100); + } else { + slave.waist = jsRandom(50,100); + } + }; + + function generateVagina() { + if (slave.physicalAge <= 13) { + slave.vagina = jsEither([0, 0, 0, 0, 0, 0, 0, 1]); + } else if (slave.physicalAge <= 15) { + slave.vagina = jsEither([0, 0, 0, 0, 0, 0, 1, 1]); + } else if (slave.physicalAge <= 17) { + slave.vagina = jsEither([0, 0, 0, 0, 0, 1, 1, 1]); + } else if (slave.physicalAge < 20) { + slave.vagina = jsEither([0, 1]); + } else if (slave.physicalAge > 30) { + slave.vagina = jsEither([1, 1, 1, 1, 2]); + } else { + slave.vagina = jsEither([0, 0, 1, 1, 1]); + } + + if (slave.physicalAge <= 11) { + slave.clit = jsEither([0, 0, 0, 0, 0, 0, 0, 0, 1]); + } else if (slave.physicalAge <= 13) { + slave.clit = jsEither([0, 0, 0, 0, 0, 0, 0, 1, 1]); + } else if (slave.physicalAge <= 15) { + slave.clit = jsEither([0, 0, 0, 0, 0, 0, 0, 1, 2]); + } else { + slave.clit = jsEither([0, 0, 0, 0, 0, 0, 1, 1, 2]); + } + + if (slave.physicalAge <= 11) { + slave.labia = jsEither([0, 0, 0, 0, 0, 0, 0, 1, 1]); + } else if (slave.physicalAge <= 12) { + slave.labia = jsEither([0, 0, 0, 0, 0, 0, 1, 1, 1]); + } else if (slave.physicalAge <= 13) { + slave.labia = jsEither([0, 0, 0, 0, 0, 1, 1, 1, 1]); + } else if (slave.physicalAge <= 14) { + slave.labia = jsEither([0, 0, 0, 0, 1, 1, 1, 1, 2]); + } else if (slave.physicalAge <= 15) { + slave.labia = jsEither([0, 0, 0, 1, 1, 1, 1, 2, 2]); + } else { + slave.labia = jsEither([0, 0, 0, 1, 1, 1, 1, 2, 2, 3]); + } + + if (slave.energy < random(1,80)) { + slave.vaginaLube = 0; + } else if ( slave.physicalAge > random(35,60)) { + slave.vaginaLube = 0; + } else { + slave.vaginaLube = 1; + } + slave.foreskin = jsRandom(0,4); + }; + + function generateDick() { + slave.vagina = -1; + slave.clit = 0; + slave.preg = 0; + + if (slave.physicalAge <= 13) { + slave.dick = jsEither([1, 1, 1, 1, 2, 2, 2, 3]); + if (V.seeExtreme == 1) { + slave.balls = jsEither([0, 0, 1, 1, 1, 2, 2, 2, 2, 3, 3]); + } else { + slave.balls = jsEither([1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3]); + } + slave.scrotum = slave.balls; + } else if (slave.physicalAge <= 15) { + slave.dick = jsEither([1, 1, 1, 2, 2, 2, 3]); + if (V.seeExtreme == 1) { + slave.balls = jsEither([0, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4]); + } else { + slave.balls = jsEither([1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4]); + } + slave.scrotum = slave.balls; + } else if (slave.physicalAge <= 17) { + slave.dick = jsEither([1, 1, 2, 2, 3, 3]); + if (V.seeExtreme == 1) { + slave.balls = jsEither([0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 5]); + } else { + slave.balls = jsEither([1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 5]); + } + slave.scrotum = slave.balls; + } else { + slave.dick = jsEither([1, 2, 2, 2, 3, 3, 3, 4, 4, 5]); + if (V.seeExtreme == 1) { + slave.balls = jsEither([0, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5]); + } else { + slave.balls = jsEither([1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5]); + } + if (slave.balls != 0) { + slave.scrotum = slave.balls + jsEither([0, 0, 1]); + } else { + slave.scrotum = 0; + } + if (jsRandom(1,100) < 3) { + slave.vasectomy = 1; + } + } + }; + + function generateCircumcision() { + /* The default rate of 50* is wildly unrepresentative, and there is extreme regional variation. */ + /* + What we want is the prevalence among newborns, since this game + happens about 20 years in the future, but we'll use this lacking + something better. + https://pophealthmetrics.biomedcentral.com/articles/10.1186/s12963-016-0073-5 + Right now we mostly just break it down by country. + It would be better to break it down by both country + and race if statistics are available. + */ + if (V.seeCircumcision == 0) { + slave.foreskin = slave.dick + jsRandom(0,1); + } else { + /* Temporarily use activeSlave.foreskin to store the chance of circumcision. */ + switch (slave.nationality) { + case "Afghan": + case "Iranian": + case "Moroccan": + case "Palestinian": + case "Sahrawi": + case "Tunisian": + slave.foreskin = 100; + break; + case "Comorian": + case "Gabonese": + case "Iraqi": + case "Jordanian": + case "Kurdish": + case "Mauritanian": + case "Nigerian": + case "Tajik": + case "Turkish": + case "Yemeni": + slave.foreskin = 99; + break; + case "Algerian": + case "Azerbaijani": + case "Liberian": + case "Maldivian": + slave.foreskin = 98; + break; + case "Djiboutian": + case "Eritrean": + case "Ivorian": + case "Libyan": + case "Saudi": + case "Uzbek": + slave.foreskin = 97; + break; + case "Nigerien": + case "Pakistani": + case "Sierra Leonean": + case "Turkmen": + case "Zairian": + slave.foreskin = 96; + break; + case "a Cook Islander": + case "Egyptian": + case "Gambian": + case "Guamanian": + case "Malagasy": + case "Nauruan": + case "Ni-Vanuatu": + case "Niuean": + case "Palauan": + case "Samoan": + case "a Solomon Islander": + case "Togolese": + case "Tongan": + case "Tuvaluan": + slave.foreskin = 95; + break; + case "Cameroonian": + case "Senegalese": + case "Somali": + slave.foreskin = 94; + break; + case "Bangladeshi": + case "Beninese": + case "Bissau-Guinean": + case "Indonesian": + case "Syrian": + slave.foreskin = 93; + break; + case "Ethiopian": + case "Filipina": + case "Ghanan": + case "Israeli": + case "Kosovan": + slave.foreskin = 92; + break; + case "Kenyan": + case "Kyrgyz": + slave.foreskin = 91; + break; + case "Burkinabé": + case "Omani": + slave.foreskin = 88; + break; + case "Equatoguinean": + slave.foreskin = 87; + break; + case "Kuwaiti": + case "Malian": + slave.foreskin = 86; + break; + case "Guinean": + slave.foreskin = 84; + break; + case "Bahraini": + slave.foreskin = 81; + break; + case "French Polynesian": + slave.foreskin = 78; + break; + case "American": + case "Qatari": + slave.foreskin = 77; + break; + case "Emirati": + slave.foreskin = 76; + break; + case "Chadian": + slave.foreskin = 74; + break; + case "Tanzanian": + slave.foreskin = 72; + break; + case "Congolese": + slave.foreskin = 70; + break; + case "Central African": + slave.foreskin = 63; + break; + case "Burundian": + case "Malaysian": + slave.foreskin = 61; + break; + case "Lebanese": + slave.foreskin = 60; + break; + case "Angolan": + slave.foreskin = 58; + break; + case "Fijian": + case "Kazakh": + slave.foreskin = 56; + break; + case "Bruneian": + case "Korean": + case "Mosotho": + /* Population-weighted average of South Korea and North Korea. */ + slave.foreskin = 52; + break; + case "New Caledonian": + slave.foreskin = 50; + break; + case "Albanian": + slave.foreskin = 48; + break; + case "Mozambican": + slave.foreskin = 47; + break; + case "South African": + slave.foreskin = 45; + break; + case "Dominican": + slave.foreskin = 43; + break; + case "Bosnian": + slave.foreskin = 42; + break; + case "Sudanese": + slave.foreskin = 39; + break; + case "Mexican": + slave.foreskin = 38; + break; + case "Macedonian": + slave.foreskin = 34; + break; + case "a New Zealander": + slave.foreskin = 33; + break; + case "Canadian": + slave.foreskin = 32; + break; + case "Scottish": + slave.foreskin = 28; + break; + case "Australian": + case "Ugandan": + slave.foreskin = 27; + break; + case "Namibian": + slave.foreskin = 26; + break; + case "South Sudanese": + slave.foreskin = 24; + break; + case "Belgian": + case "Cypriot": + case "Thai": + slave.foreskin = 23; + break; + case "Malawian": + slave.foreskin = 22; + break; + case "British": + slave.foreskin = 21; + break; + case "Puerto Rican": + slave.foreskin = 20; + break; + case "Montenegrin": + slave.foreskin = 19; + break; + case "Mauritian": + slave.foreskin = 17; + break; + case "Motswana": + case "Singaporean": + case "Surinamese": + slave.foreskin = 15; + break; + case "Chinese": + case "French": + case "Indian": + case "Jamaican": + slave.foreskin = 14; + break; + case "Bulgarian": + case "Rwandan": + case "Zambian": + slave.foreskin = 13; + break; + case "French Guianan": + case "Guyanese": + case "Russian": + slave.foreskin = 12; + break; + case "German": + slave.foreskin = 11; + break; + case "Belarusian": + case "Georgian": + case "Papua New Guinean": + slave.foreskin = 10; + break; + case "Japanese": + case "Zimbabwean": + slave.foreskin = 9; + break; + case "Slovene": + case "Sri Lankan": + case "Swazi": + case "Taiwanese": + slave.foreskin = 8; + break; + case "Catalan": + case "Haitian": + case "Spanish": + slave.foreskin = 7; + break; + case "Austrian": + case "Dutch": + case "East Timorese": + case "Swiss": + case "Trinidadian": + slave.foreskin = 6; + break; + case "Danish": + case "Greek": + case "a Liechtensteiner": + case "Swedish": + slave.foreskin = 5; + break; + case "Burmese": + case "Cambodian": + case "Mongolian": + case "Nepalese": + case "Peruvian": + case "Serbian": + slave.foreskin = 4; + break; + case "Argentinian": + case "Italian": + case "Norwegian": + slave.foreskin = 3; + break; + case "Luxembourgian": + case "Tibetan": + case "Ukrainian": + case "Vincentian": + slave.foreskin = 2; + break; + case "Andorran": + case "Barbadian": + case "Bermudian": + case "Bhutanese": + case "Brazilian": + case "Croatian": + case "Finnish": + case "Hungarian": + case "Irish": + case "Moldovan": + case "Monégasque": + case "Panamanian": + case "Portuguese": + case "Seychellois": + case "Uruguayan": + slave.foreskin = 1; + break; + case "Antiguan": + case "Armenian": + case "Bahamian": + case "Belizean": + case "Bolivian": + case "Cape Verdean": + case "Chilean": + case "Colombian": + case "Costa Rican": + case "Cuban": + case "Czech": + case "Dominiquais": + case "Ecuadorian": + case "Estonian": + case "Greenlandic": + case "Grenadian": + case "Guatemalan": + case "Honduran": + case "I-Kiribati": + case "Icelandic": + case "Kittitian": + case "Laotian": + case "Latvian": + case "Lithuanian": + case "Maltese": + case "Marshallese": + case "Micronesian": + case "Nicaraguan": + case "Paraguayan": + case "Polish": + case "Romanian": + case "Saint Lucian": + case "Salvadoran": + case "Sammarinese": + case "São Toméan": + case "Slovak": + case "Vatican": + case "Venezuelan": + case "Vietnamese": + slave.foreskin = 0; + break; + default: + /* Some overlooked country, or possibly stateless. Use global average. */ + slave.foreskin = 38; + } + /* Second pass for minorities in other countries. */ + if (slave.race == "middle eastern" && slave.foreskin < 76) { + slave.foreskin = 76; + } + if (slave.race == "semitic" && slave.foreskin < 90) { + slave.foreskin = 90; + } + /* Chance activeSlave.foreskin back to the normal meaning. */ + if (jsRandom(0,99) < slave.foreskin) { + slave.foreskin = 0; + } else { + slave.foreskin = slave.dick + jsRandom(0,1); + } + } + }; + + function generateXXPreferences() { + randomizeAttraction(slave); + slave.fetishStrength = jsRandom(0,90); + slave.fetish = jsEither(["none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "submissive", "submissive", "cumslut", "humiliation", "humiliation", "buttslut", "boobs", "pregnancy", "dom", "sadist", "masochist"]); + slave.behavioralFlaw = jsEither(["none", "none", "none", "arrogant", "bitchy", "odd", "hates men", "hates women", "hates women", "anorexic", "gluttonous", "devout", "liberated"]); + + if (slave.behavioralFlaw == "devout") { + slave.sexualFlaw = jsEither(["none", "repressed", "shamefast", "apathetic", "crude", "judgemental"]); + } else { + slave.sexualFlaw = jsEither(["none", "none", "none", "none", "hates oral", "hates anal", "hates penetration", "repressed", "idealistic", "shamefast", "apathetic", "crude", "judgemental"]); + } + if (slave.behavioralFlaw == "none" && jsRandom(1,10) == 1) { + slave.behavioralQuirk = jsEither(["confident", "cutting", "funny", "adores women", "adores men", "fitness", "insecure", "sinful", "advocate"]); + } + if (slave.sexualFlaw == "none" && jsRandom(1,10) == 1) { + slave.sexualQuirk = jsEither(["gagfuck queen", "painal queen", "strugglefuck queen", "tease", "romantic", "perverted", "caring", "unflinching", "size queen"]); + } + }; + + function generateXYPreferences() { + randomizeAttraction(slave); + slave.fetishStrength = jsRandom(0,90); + slave.fetish = jsEither(["none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "submissive", "cumslut", "humiliation", "buttslut", "buttslut", "boobs", "dom", "sadist", "masochist"]); + slave.behavioralFlaw = jsEither(["none", "none", "none", "arrogant", "bitchy", "odd", "hates men", "hates men", "hates men", "hates women", "anorexic", "gluttonous", "devout", "liberated"]); + + if (slave.behavioralFlaw == "devout") { + slave.sexualFlaw = jsEither(["none", "repressed", "shamefast", "apathetic", "crude", "judgemental"]); + } else { + slave.sexualFlaw = jsEither(["none", "none", "none", "none", "hates oral", "hates anal", "hates anal", "repressed", "idealistic", "shamefast", "apathetic", "crude", "judgemental"]); + } + if (slave.behavioralFlaw == "none" && jsRandom(1,10) == 1) { + slave.behavioralQuirk = jsEither(["confident", "cutting", "funny", "adores women", "adores men", "fitness", "insecure", "sinful", "advocate"]); + } + if (slave.sexualFlaw == "none" && jsRandom(1,10) == 1) { + slave.sexualQuirk = jsEither(["gagfuck queen", "painal queen", "strugglefuck queen", "tease", "romantic", "perverted", "caring", "unflinching", "size queen"]); + } + }; + + function generateXXButt() { + if (slave.physicalAge <= 11) { + slave.butt = jsEither([1, 1, 1, 1, 1, 1, 1]); + } else if (slave.physicalAge <= 12) { + slave.butt = jsEither([1, 1, 1, 1, 1, 2, 2]); + } else if (slave.physicalAge <= 13) { + slave.butt = jsEither([1, 1, 1, 1, 2, 2, 2]); + } else if (slave.physicalAge <= 14) { + slave.butt = jsEither([1, 1, 1, 2, 2, 2, 3]); + } else if (slave.physicalAge <= 15) { + slave.butt = jsEither([1, 1, 2, 2, 2, 2, 3]); + } else { + switch (slave.race) { + case "black": + slave.butt = jsEither([1, 2, 2, 3, 3, 4, 4]); + break; + case "indo-aryan": + case "malay": + case "pacific islander": + case "amerindian": + case "asian": + case "middle eastern": + case "semitic": + case "southern european": + slave.butt = jsEither([1, 2, 2, 3, 3]); + break; + default: + slave.butt = jsEither([1, 2, 2, 3, 3, 4]); + } + } + if (V.weightAffectsAssets != 0) { + if (slave.weight < -10 && slave.butt > 1) { + slave.butt -= 1; + } else if (slave.weight > 100 && slave.butt < 6) { + slave.butt += jsRandom(1,2); + } else if (slave.weight > 10 && slave.butt < 4) { + slave.butt += 1; + } + } + slave.anus = jsEither([0, 0, 1, 1, 2]); + slave.analArea = slave.anus + jsEither([0, 0, 0, 1]); + }; + + function generateXYButt() { + if (slave.physicalAge <= 13) { + slave.butt = jsEither([1, 1, 1, 2, 2, 3, 3, 4]); + } else { + slave.butt = jsEither([1, 1, 2, 3]); + } + if (V.weightAffectsAssets != 0) { + if (slave.weight < -10 && slave.butt > 1) { + slave.butt -= 1; + } else if (slave.weight > 100 && slave.butt < 6) { + slave.butt += jsRandom(1,2); + } else if (slave.weight > 10 && slave.butt < 4) { + slave.butt += 1; + } + } + if (slave.attrXY > 0) { + slave.anus = jsEither([0, 1, 2]); + } else { + if (slave.physicalAge <= 13) { + slave.anus = jsEither([0, 0, 0, 0, 0, 1]); + } else if (slave.physicalAge <= 15) { + slave.anus = jsEither([0, 0, 0, 0, 1, 1, 1]); + } else if (slave.physicalAge <= 17) { + slave.anus = jsEither([0, 0, 0, 1, 1, 1]); + } else { + slave.anus = jsEither([0, 0, 1, 1, 2]); + } + } + slave.analArea = slave.anus + jsEither([0, 0, 0, 1]); + }; + + function generateXXBoobs() { + if (slave.physicalAge <= 10) { + slave.boobs = 100; + } else if (slave.physicalAge == 11) { + slave.boobs = jsEither([100, 100, 150, 150, 150, 300]); + } else if (slave.physicalAge == 12) { + slave.boobs = jsEither([100, 100, 150, 150, 150, 200, 200, 300]); + } else if (slave.physicalAge == 13) { + slave.boobs = jsEither([100, 150, 200, 200, 300, 300, 300, 400]); + } else if (slave.physicalAge == 14) { + slave.boobs = jsEither([100, 150, 200, 300, 300, 300, 350, 400, 400]); + } else if (slave.physicalAge == 15) { + slave.boobs = jsEither([150, 200, 300, 300, 300, 350, 350, 350, 400, 400, 450, 450]); + } else { + switch (slave.race) { + case "black": + slave.boobs = BoobGenerator.rollBreast(150); + break; + case "white": + slave.boobs = BoobGenerator.rollBreast(50); + break; + case "asian": + slave.boobs = BoobGenerator.rollBreast(-100); + break; + default: + slave.boobs = BoobGenerator.rollBreast(0); + } + } + }; + + function generateXYBoobs() { + slave.boobs = jsEither([100, 200, 200, 300, 300, 400, 500]); + }; + + function generateXXFace() { + slave.face = jsRandom(-60,60); + if (jsRandom(0,2) == 0) { + slave.face = jsRandom(-10,10); + } + if (slave.physicalAge > 40) { + slave.face -= jsRandom(0,20); + } else if (slave.physicalAge > 35) { + slave.face -= jsRandom(0,10); + } else if (slave.physicalAge <= 20) { + slave.face += jsRandom(0,20); + } else if (slave.physicalAge <= 25) { + slave.face += jsRandom(0,10); + } + if (slave.physicalAge > 10) { + slave.faceShape = jsEither(["androgynous", "cute", "sensual", "exotic", "normal", "normal"]); + } else { + slave.faceShape = jsEither(["androgynous", "androgynous", "cute", "cute", "sensual", "exotic", "normal", "normal"]); + } + switch (slave.faceShape) { + case "sensual": + case "cute": + slave.face += jsRandom(0,20); + break; + case "exotic": + case "androgynous": + slave.face += jsRandom(-10,10); + break; + case "masculine": + slave.face += jsRandom(-10,0); + } + }; + + function generateXYFace() { + slave.face = jsRandom(-70,20); + if (jsRandom(0,2) == 0) { + slave.face = jsRandom(-40,-10); + } + if (slave.physicalAge > 40) { + slave.face -= jsRandom(0,20); + } else if (slave.physicalAge > 35) { + slave.face -= jsRandom(0,10); + } else if (slave.physicalAge <= 20) { + slave.face += jsRandom(0,20); + } else if (slave.physicalAge <= 25) { + slave.face += jsRandom(0,10); + } + if (slave.physicalAge >= 17) { + slave.faceShape = jsEither(["masculine", "masculine", "masculine", "androgynous"]); + } else if (slave.physicalAge >= 15) { + slave.faceShape = jsEither(["masculine", "masculine", "masculine", "masculine", "masculine", "masculine", "masculine", "masculine", "androgynous", "sensual", "exotic", "normal"]); + } else if (slave.physicalAge >= 13) { + slave.faceShape = jsEither(["masculine", "masculine", "masculine", "androgynous", "cute", "sensual", "exotic", "normal"]); + } else if (slave.physicalAge >= 11) { + slave.faceShape = jsEither(["masculine", "androgynous", "cute", "sensual", "exotic", "normal", "normal"]); + } else { + slave.faceShape = jsEither(["androgynous", "androgynous", "cute", "cute", "sensual", "exotic", "normal", "normal"]); + } + switch (slave.faceShape) { + case "sensual": + case "cute": + slave.face += jsRandom(0,20); break; - case "seeNot": - if ((jsRandom(1,100)-(disableCount*2)) > 90) { - slave.eyes = -2; + case "exotic": + case "androgynous": + slave.face += jsRandom(-10,10); + break; + case "masculine": + slave.face += jsRandom(-10,0); + } + }; + + function generateXXPregAdaptation() { + if (slave.physicalAge <= 6) { + slave.pregAdaptation = 5; + } else if (slave.physicalAge <= 11) { + slave.pregAdaptation = slave.physicalAge - 1; + } else if (slave.physicalAge <= 14) { + slave.pregAdaptation = 4*(slave.physicalAge - 12) + 14; + } else if (slave.physicalAge <= 15) { + slave.pregAdaptation = 28; + } else if (slave.physicalAge <= 16) { + slave.pregAdaptation = 34; + } else if (slave.physicalAge <= 17) { + slave.pregAdaptation = 42; + } else { + slave.pregAdaptation = 50; + } + }; + + function generateXYPregAdaptation() { + if (slave.physicalAge <= 6) { + slave.pregAdaptation = 5; + } else if (slave.physicalAge <= 11) { + slave.pregAdaptation = slave.physicalAge - 1; + } else if (slave.physicalAge <= 15) { + slave.pregAdaptation = 2*(slave.physicalAge - 12) + 12; + } else { + slave.pregAdaptation = 20; + } + }; + + function generateXXVoice() { + if (slave.physicalAge <= 13) { + slave.voice = jsEither([2, 2, 2, 3, 3, 3, 3, 3, 3]); + } else if (slave.physicalAge <= 16) { + slave.voice = jsEither([2, 2, 2, 2, 2, 3, 3, 3, 3]); + } else { + slave.voice = jsEither([1, 2, 2, 2, 2, 2, 2, 3, 3, 3]); + } + }; + + function generateXYVoice() { + if (slave.physicalAge <= 11) { + slave.voice = jsEither([2, 2, 2, 3, 3, 3, 3, 3, 3]); + } else if (slave.physicalAge <= 13) { + slave.voice = jsEither([1, 1, 2, 2, 2, 2, 2, 3, 3]); + } else if (slave.physicalAge <= 16) { + slave.voice = jsEither([1, 1, 1, 2, 2, 2, 2, 2, 3]); + } else { + if (slave.balls > 2) { + slave.voice = 1; + } else if (slave.balls > 0) { + slave.voice = jsEither([1, 1, 2]); + } else { + slave.voice = jsEither([1, 2, 2]); + } + } + }; + + function generateXXTeeth() { + var femaleCrookedTeethGen = slave.intelligence+slave.intelligenceImplant; + if ("American" == slave.nationality) { + femaleCrookedTeethGen += 20; + } else if (["Andorran", "Antiguan", "Argentinian", "Aruban", "Australian", "Austrian", "Bahamian", "Bahraini", "Barbadian", "Belarusian", "Belgian", "Bermudian", "Brazilian", "British", "Bruneian", "Bulgarian", "Canadian", "Catalan", "Chilean", "a Cook Islander", "Croatian", "Czech", "Cypriot", "Danish", "Dutch", "Emirati", "Estonian", "Finnish", "French", "German", "Greek", "Greenlandic", "Guamanian", "Hungarian", "Icelandic", "Irish", "Israeli", "Italian", "Japanese", "Kazakh", "Korean", "Kuwaiti", "Latvian", "a Liechtensteiner", "Lithuanian", "Luxembourgian", "Malaysian", "Maltese", "Mauritian", "Monégasque", "Montenegrin", "New Caledonian", "a New Zealander", "Niuean", "Norwegian", "Omani", "Palauan", "Panamanian", "Polish", "Portuguese", "Puerto Rican", "Qatari", "Romanian", "Russian", "Sammarinese", "Saudi", "Seychellois", "Singaporean", "Slovak", "Slovene", "Spanish", "Swedish", "Swiss", "Taiwanese", "Trinidadian", "Uruguayan", "Vatican"].includes(slave.nationality)) { + /* do nothing */ + } else { + femaleCrookedTeethGen -= 20; + } + + if (jsRandom(0, femaleCrookedTeethGen) <= 15 && slave.physicalAge >= 12) { + slave.teeth = "crooked"; + } + + if (slave.physicalAge < 6) { + slave.teeth = "baby"; + } else if (slave.physicalAge < 12) { + slave.teeth = "mixed"; + } + }; + + function generateXYTeeth() { + var maleCrookedTeethGen = slave.intelligence+slave.intelligenceImplant; + if ("American" == slave.nationality) { + maleCrookedTeethGen += 22; + } else if (["Andorran", "Antiguan", "Argentinian", "Aruban", "Australian", "Austrian", "Bahamian", "Bahraini", "Barbadian", "Belarusian", "Belgian", "Bermudian", "Brazilian", "British", "Bruneian", "Bulgarian", "Canadian", "Catalan", "Chilean", "a Cook Islander", "Croatian", "Czech", "Cypriot", "Danish", "Dutch", "Emirati", "Estonian", "Finnish", "French", "German", "Greek", "Greenlandic", "Guamanian", "Hungarian", "Icelandic", "Irish", "Israeli", "Italian", "Japanese", "Kazakh", "Korean", "Kuwaiti", "Latvian", "a Liechtensteiner", "Lithuanian", "Luxembourgian", "Malaysian", "Maltese", "Mauritian", "Monégasque", "Montenegrin", "New Caledonian", "a New Zealander", "Niuean", "Norwegian", "Omani", "Palauan", "Panamanian", "Polish", "Portuguese", "Puerto Rican", "Qatari", "Romanian", "Russian", "Sammarinese", "Saudi", "Seychellois", "Singaporean", "Slovak", "Slovene", "Spanish", "Swedish", "Swiss", "Taiwanese", "Trinidadian", "Uruguayan", "Vatican"].includes(slave.nationality)) { + /* do nothing */ + } else { + maleCrookedTeethGen -= 20; + } + + if (jsRandom(0, maleCrookedTeethGen) <= 15 && slave.physicalAge >= 12) { + slave.teeth = "crooked"; + } + + if (slave.physicalAge < 6) { + slave.teeth = "baby"; + } else if (slave.physicalAge < 12) { + slave.teeth = "mixed"; + } + }; + + function generateXXMods() { + if (passage() != "Starting Girls") { + slave.earPiercing = jsEither([0,1]); + slave.nosePiercing = jsEither([0,0,0,1]); + slave.eyebrowPiercing = jsEither([0,0,0,0,0,1]); + slave.clitPiercing = jsEither([0,0,0,0,0,1]); + slave.lipsPiercing = jsEither([0,0,0,0,0,1]); + slave.navelPiercing = jsEither([0,0,0,1]); + slave.nipplesPiercing = jsEither([0,0,0,0,1]); + } + if (slave.anus != 0 && Math.random() < 0.25) { + slave.anusTat = "bleached"; + } + }; + + function generateXYMods() { + if (passage() != "Starting Girls") { + slave.earPiercing = jsEither([0,0,0,1]); + slave.nosePiercing = jsEither([0,0,0,0,1]); + slave.eyebrowPiercing = jsEither([0,0,0,0,0,1]); + slave.clitPiercing = jsEither([0,0,0,0,0,1]); + slave.lipsPiercing = jsEither([0,0,0,0,0,1]); + slave.navelPiercing = jsEither([0,0,0,0,1]); + slave.nipplesPiercing = jsEither([0,0,0,0,1]); + } + if (slave.anus != 0 && Math.random() < 0.25) { + slave.anusTat = "bleached"; + } + }; + + function generateXXBodyHair() { + slave.pubicHColor = slave.hColor; + slave.underArmHColor = slave.hColor; + slave.pubicHStyle = jsEither(["hairless", "bald", "bald", "waxed", "waxed", "waxed", "waxed", "waxed", "waxed", "in a strip", "in a strip", "in a strip", "in a strip", "in a strip", "neat", "neat", "neat", "neat", "neat", "bushy in the front and neat in the rear", "bushy in the front and neat in the rear", "bushy in the front and neat in the rear", "bushy in the front and neat in the rear", "bushy", "bushy", "bushy", "bushy", "bushy", "very bushy", "very bushy"]); + slave.underArmHStyle = jsEither(["hairless", "bald", "bald", "waxed", "waxed", "waxed", "waxed", "shaved", "shaved", "shaved", "shaved", "shaved", "neat", "neat", "neat", "neat", "neat", "bushy", "bushy", "bushy"]); + if ((slave.pubicHStyle == "hairless" || slave.underArmHStyle == "hairless") && Math.random() > 0.4) { + slave.pubicHStyle = "hairless"; + slave.underArmHStyle = "hairless"; + } + if (slave.hColor == "blonde" && Math.random() > 0.85) { + slave.eyebrowHColor = jsEither(["brown", "brown", "brown", "brown", "black"]); + slave.override_Brow_H_Color = 1; + } else { + slave.eyebrowHColor = slave.hColor; + } + slave.eyebrowHStyle = jsEither(["bald", "shaved", "shaved", "straight", "straight", "straight", "straight", "straight", "straight", "rounded", "rounded", "rounded", "rounded", "rounded", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "slanted inwards", "slanted inwards", "slanted outwards", "slanted outwards", "high-arched", "high-arched", "high-arched", "elongated", "elongated", "elongated", "shortened", "shortened", "shortened", "curved", "curved", "curved", "curved", "curved", "curved", "curved"]); + slave.eyebrowFullness = jsEither(["pencil-thin", "pencil-thin", "thin", "thin", "thin", "threaded", "threaded", "threaded", "threaded", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "tapered", "tapered", "tapered", "tapered", "thick", "thick", "thick", "bushy", "bushy"]); + }; + + function generateXYBodyHair() { + slave.pubicHColor = slave.hColor; + slave.underArmHColor = slave.hColor; + slave.pubicHStyle = jsEither(["hairless", "bald", "bald", "waxed", "waxed", "waxed", "waxed", "waxed", "waxed", "in a strip", "in a strip", "in a strip", "neat", "neat", "neat", "neat", "neat", "neat", "bushy in the front and neat in the rear", "bushy in the front and neat in the rear", "bushy in the front and neat in the rear", "bushy", "bushy", "bushy", "bushy", "bushy", "bushy", "very bushy", "very bushy"]); + slave.underArmHStyle = jsEither(["hairless", "bald", "bald", "waxed", "waxed", "waxed", "waxed", "shaved", "shaved", "shaved", "shaved", "shaved", "neat", "neat", "neat", "neat", "neat", "neat", "neat", "bushy", "bushy", "bushy", "bushy", "bushy"]); + if ((slave.pubicHStyle == "hairless" || slave.underArmHStyle == "hairless") && Math.random() > 0.4) { + slave.pubicHStyle = "hairless"; + slave.underArmHStyle = "hairless"; + } + if (slave.hColor == "blonde" && Math.random() > 0.85) { + slave.eyebrowHColor = jsEither(["brown", "brown", "brown", "brown", "black"]); + slave.override_Brow_H_Color = 1; + } else { + slave.eyebrowHColor = slave.hColor; + } + slave.eyebrowHStyle = jsEither(["bald", "shaved", "shaved", "straight", "straight", "straight", "straight", "straight", "straight", "rounded", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "slanted inwards", "slanted outwards", "high-arched", "elongated", "shortened", "curved", "curved", "curved", "curved", "curved"]); + slave.eyebrowFullness = jsEither(["pencil-thin", "thin", "thin", "threaded", "threaded", "threaded", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "tapered", "tapered", "tapered", "thick", "thick", "bushy"]); + }; + + function generateXXPuberty() { + if (slave.physicalAge >= slave.pubertyAgeXX) { + slave.pubertyXX = 1; + } else { + slave.pubertyXX = 0; + } + } + + function generateXYPuberty() { + if (slave.balls > 0) { + if (slave.physicalAge >= slave.pubertyAgeXY) { + slave.pubertyXY = 1; + } else { + slave.pubertyXY = 0; + } + } else { + slave.pubertyXY = 0; + } + }; + + function generateAge() { + if (V.activeSlaveOneTimeMaxAge > 998) { + V.activeSlaveOneTimeMaxAge = (V.pedo_mode === 1) ? 18 : 42; + } else if (V.pedo_mode === 1 && V.one_time_age_overrides_pedo_mode === 0 && V.activeSlaveOneTimeMaxAge > 18) { + V.activeSlaveOneTimeMaxAge = 18; + } + if (V.retirementAge < V.activeSlaveOneTimeMaxAge) { + V.activeSlaveOneTimeMaxAge = (V.retirementAge - 1); + } + if (V.activeSlaveOneTimeMinAge < V.minimumSlaveAge) { + V.activeSlaveOneTimeMinAge = V.minimumSlaveAge; + } else if (V.pedo_mode === 1 && V.one_time_age_overrides_pedo_mode === 0) { + V.activeSlaveOneTimeMinAge = V.minimumSlaveAge; + } + if (V.activeSlaveOneTimeMaxAge < V.activeSlaveOneTimeMinAge) { + V.activeSlaveOneTimeMaxAge = V.activeSlaveOneTimeMinAge; + } + if (V.activeSlaveOneTimeMaxAge >= 30 && V.arcologies[0].FSMaturityPreferentialist !== "unset" && V.ageAdjustOverride !== 1) { + V.activeSlaveOneTimeMaxAge += 10; + } + slave.actualAge = jsRandom(V.activeSlaveOneTimeMinAge, V.activeSlaveOneTimeMaxAge); + const secondAgeRoll = jsRandom(V.activeSlaveOneTimeMinAge, V.activeSlaveOneTimeMaxAge); + if (V.arcologies[0].FSYouthPreferentialist !== "unset" && V.arcologies[0].FSYouthPreferentialist >= jsRandom(1, 100)) { + slave.actualAge = Math.min(slave.actualAge, secondAgeRoll); + } else if (V.arcologies[0].FSMaturityPreferentialist !== "unset" && V.arcologies[0].FSMaturityPreferentialist >= jsRandom(1, 100)) { + slave.actualAge = Math.max(slave.actualAge, secondAgeRoll); + } + if (slave.actualAge >= V.retirementAge) { + slave.actualAge = (V.retirementAge - 2); + } + V.activeSlaveOneTimeMinAge = 0; + V.activeSlaveOneTimeMaxAge = 999; + V.one_time_age_overrides_pedo_mode = 0; + V.ageAdjustOverride = 0; + slave.visualAge = slave.actualAge; + slave.physicalAge = slave.actualAge; + slave.ovaryAge = slave.actualAge; + slave.age = slave.actualAge; /*compatibility*/ + slave.pubertyAgeXX = V.fertilityAge; + slave.pubertyAgeXY = V.potencyAge; + }; + + function generateIntelligence() { + const gaussian = gaussianPair(); + slave.intelligence = Intelligence.random(); + if (V.AgePenalty == 1 && slave.actualAge <= 24) { + if (gaussian[0] < gaussian[1] + slave.intelligence/29 + (slave.actualAge - 24)/8 - 0.35) { + slave.intelligenceImplant = 15; + if (slave.intelligenceImplant > 0 && jsRandom(15,150) < slave.intelligence) { + slave.intelligenceImplant = 30; + } + } + } else { + if (gaussian[0] < gaussian[1] + slave.intelligence/29 - 0.35) { /* 40.23% chance if intelligence is 0, 99.26% chance if intelligence is 100 */ + slave.intelligenceImplant = 15; + if (slave.intelligenceImplant > 0 && jsRandom(15,150) < slave.intelligence) { + slave.intelligenceImplant = 30; } - disList.delete("seeNot"); - disableCount++; + } + } + }; + + function generateCareer() { + if (V.AgePenalty == 1) { + if (slave.actualAge < 16) { + slave.career = setup.veryYoungCareers.random(); + } else if (slave.actualAge <= 24) { + slave.career = setup.youngCareers.random(); + } else if (slave.intelligenceImplant >= 15) { + slave.career = setup.educatedCareers.random(); + } else { + slave.career = setup.uneducatedCareers.random(); + } + } else { + if (slave.actualAge < 16) { + slave.career = setup.veryYoungCareers.random(); + } else if (slave.intelligenceImplant >= 15) { + slave.career = setup.educatedCareers.random(); + } else if (slave.actualAge <= 24) { + slave.career = setup.youngCareers.random(); + } else { + slave.career = setup.uneducatedCareers.random(); + } + } + }; + + function generateNationality() { + if (V.fixedRace == 0) { + if (V.fixedNationality == 0) { + slave.nationality = hashChoice(V.nationalities); + } else { + slave.nationality = V.fixedNationality; + V.fixedNationality = 0; + } + nationalityToRace(slave); + + if (passage() == "Corporate Market" && (V.captureUpgradeRace != "unselected") && (V.captureUpgradeRace != "none")) { + if (V.captureUpgradeRace == "mixed race") { + slave.race = "mixed race"; + } else { + const capUpgradeCheck = setup[V.captureUpgradeRace.toLowerCase().replace(/[ -]/g, '')+'Nationalities']; + const keys = Object.keys(capUpgradeCheck); + var capUpgradeNationalities = {}; + for (var i = 0; i < keys.length; i++) { + if (keys[i] in V.nationalities) { + capUpgradeNationalities[keys[i]] = capUpgradeCheck[keys[i]]; + } + } + if (Object.keys(capUpgradeNationalities).length > 0) { + slave.nationality = hashChoice(capUpgradeNationalities); + } else { + slave.nationality = hashChoice(capUpgradeCheck); + } + slave.race = V.captureUpgradeRace; + } + } + + } else { + switch (V.fixedRace) { + case "white": + slave.nationality = hashChoice(setup.whiteNationalities); + break; + case "asian": + slave.nationality = hashChoice(setup.asianNationalities); + break; + case "latina": + slave.nationality = hashChoice(setup.latinaNationalities); + break; + case "black": + slave.nationality = hashChoice(setup.blackNationalities); + break; + case "pacific islander": + slave.nationality = hashChoice(setup.pacificislanderNationalities); + break; + case "southern european": + slave.nationality = hashChoice(setup.southerneuropeanNationalities); + break; + case "amerindian": + slave.nationality = hashChoice(setup.amerindianNationalities); + break; + case "semitic": + slave.nationality = hashChoice(setup.semiticNationalities); + break; + case "middle eastern": + slave.nationality = hashChoice(setup.middleeasternNationalities); + break; + case "indo-aryan": + slave.nationality = hashChoice(setup.indoaryanNationalities); + break; + case "malay": + slave.nationality = hashChoice(setup.malayNationalities); + break; + default: + slave.nationality = hashChoice(V.nationalities); + } + slave.race = V.fixedRace; + V.fixedRace = 0; + } + }; + + function generateAccent() { + nationalityToAccent(slave); + if ((slave.intelligenceImplant >= 15 || slave.intelligence > 95) && slave.accent >= 3 && slave.intelligence > jsRandom(0,100)) { + slave.accent -= 1; + } + }; + + function generateRacialTraits() { + switch (slave.race) { + case "black": + slave.lips = jsRandom(5,30); + slave.skin = jsEither(["black", "dark brown", "brown"]); + slave.hColor = jsEither(["black", "black", "black", "brown"]); + slave.hStyle = jsEither(["neat", "crinkled"]); break; - case "speakNot": - if ((jsRandom(1,100)-(disableCount*2)) > 90) { - slave.voice = 0; + case "white": + slave.lips = jsRandom(5,25); + if (slave.nationality == "German") { + slave.skin = jsEither(["pale", "light", "fair"]); + slave.eyeColor = jsEither(["blue", "blue", "blue", "brown", "green"]); + slave.hColor = jsEither(["black", "blonde", "blonde", "blonde", "red", "brown"]); + } else if (slave.nationality == "Icelandic") { + slave.skin = jsEither(["pale", "pale", "light", "fair"]); + slave.eyeColor = jsEither(["blue", "blue", "blue", "brown", "green"]); + slave.hColor = jsEither(["black", "blonde", "blonde", "blonde", "red", "brown"]); + } else if (slave.nationality == "Irish") { + slave.skin = jsEither(["pale", "pale", "light", "fair"]); + slave.eyeColor = jsEither(["blue", "brown", "green", "green", "green"]); + slave.hColor = jsEither(["black", "blonde", "red", "red", "red", "brown"]); + } else if (slave.nationality == "Scottish") { + slave.skin = jsEither(["pale", "fair", "light", "fair"]); + slave.eyeColor = jsEither(["blue", "brown", "brown", "green", "green", "green"]); + slave.hColor = jsEither(["black", "black", "blonde", "red", "red", "red", "brown"]); + } else { + slave.skin = jsEither(["pale", "light", "fair"]); + slave.eyeColor = jsEither(["blue", "brown", "green"]); + slave.hColor = jsEither(["black", "blonde", "red", "brown"]); } - disList.delete("speakNot"); - disableCount++; + slave.hStyle = "neat"; + break; + case "latina": + slave.lips = jsRandom(5,25); + slave.skin = jsEither(["light olive", "brown", "dark brown", "tanned", "dark olive"]); + slave.hColor = jsEither(["black", "brown"]); + slave.hStyle = "neat"; break; + case "indo-aryan": + case "malay": + case "pacific islander": + case "amerindian": + slave.lips = jsRandom(5,25); + slave.skin = jsEither(["dark", "light"]); + slave.hColor = "black"; + slave.hStyle = "neat"; + break; + case "asian": + slave.lips = jsRandom(5,25); + slave.skin = jsEither(["light olive", "dark olive", "light"]); + slave.hColor = "black"; + slave.hStyle = "neat"; + break; + case "middle eastern": + case "semitic": + case "southern european": + slave.lips = jsRandom(5,25); + slave.skin = jsEither(["fair", "light olive", "tanned", "light"]); + slave.hColor = "black"; + slave.hStyle = "neat"; + break; + default: + slave.lips = jsRandom(5,25); + slave.skin = jsEither(["pale", "dark", "light"]); + slave.hColor = jsEither(["black", "black", "black", "black", "brown", "brown", "blonde", "red"]); + slave.hStyle = "neat"; + } + if (slave.skin == "pale" || slave.skin == "fair") { + if (jsRandom(1,4) == 1) { + slave.markings = jsEither(["freckles", "freckles", "freckles", "heavily freckled", "beauty mark", "beauty mark", "birthmark", "birthmark"]); } + } else if (jsRandom(1,8) == 1) { + slave.markings = jsEither(["beauty mark", "birthmark"]); } - } - V.oneTimeDisableDisability = 0; -}; + }; + + function generateBoobTweaks() { + if (V.weightAffectsAssets != 0) { + if (slave.weight < -10 && slave.boobs > 200) { + slave.boobs -= 100; + } else if (slave.weight > 190 && slave.boobs < 3000) { + slave.boobs += (jsRandom(3,8)*100); + } else if (slave.weight > 160 && slave.boobs < 1500) { + slave.boobs += (jsRandom(2,6)*100); + } else if (slave.weight > 130 && slave.boobs < 1500) { + slave.boobs += (jsRandom(1,4)*100); + } else if (slave.weight > 95 && slave.boobs < 1200) { + slave.boobs += (jsRandom(1,3)*100); + } else if (slave.weight > 30 && slave.boobs < 1000) { + slave.boobs += 100; + } + } + + var BoobShapeGen = []; + if (slave.boobs > 250 && slave.boobs < 800) { + BoobShapeGen.push("perky"); + BoobShapeGen.push("downward-facing"); + } + if (slave.boobs > 400 && slave.boobs < 1200) { + BoobShapeGen.push("torpedo-shaped"); + BoobShapeGen.push("wide-set"); + } + if (slave.boobs > 800 && slave.physicalAge > jsRandom(10,50)) { + BoobShapeGen.push("saggy"); + } + if (BoobShapeGen.length == 1) { + if (Math.random() < 0.5) { + slave.boobShape = jsEither(BoobShapeGen); + } + } else if (BoobShapeGen.length > 1) { + if (jsRandom(1,3) != 1) { + slave.boobShape = jsEither(BoobShapeGen); + } + } + + if (slave.boobs < 250) { + slave.nipples = jsEither(["tiny", "tiny", "tiny", "tiny", "cute", "cute", "puffy", "partially inverted"]); + } else if (slave.boobs < 500) { + slave.nipples = jsEither(["tiny", "cute", "cute", "cute", "puffy", "partially inverted"]); + } else if (slave.boobs < 1000) { + slave.nipples = jsEither(["tiny", "cute", "cute", "cute", "puffy", "puffy", "partially inverted", "inverted"]); + } else { + slave.nipples = jsEither(["cute", "puffy", "partially inverted", "inverted", "huge"]); + } + }; + + function generateSkills() { + slave.vaginalSkill = (slave.vagina == 0 ? 0 : jsRandom(0,15)); + slave.analSkill = (slave.anus == 0 ? 0 : jsRandom(0,15)); + slave.oralSkill = jsRandom(0,15); + slave.entertainSkill = jsRandom(0,15); + slave.whoreSkill = jsRandom(0,15); + }; + + function generateDisabilities() { + if (slave.physicalAge >= jsRandom(0,100)) { + slave.eyes = -1; + } + if (slave.physicalAge >= jsRandom(30,100)) { + slave.hears = -1; + } + if (V.seeExtreme == 1) { + let disList = []; + disList.push("hearNot"); + disList.push("seeNot"); + disList.push("speakNot"); + let disableCount = 0; + if (V.oneTimeDisableDisability === 0) { + while (disList.length > 0) { + let rolled = jsEither(disList); + switch (rolled) { + case "hearNot": + if ((jsRandom(1,100)-(disableCount*2)) > 90) { + slave.hears = -2; + } + disList.delete("hearNot"); + disableCount++; + break; + case "seeNot": + if ((jsRandom(1,100)-(disableCount*2)) > 90) { + slave.eyes = -2; + } + disList.delete("seeNot"); + disableCount++; + break; + case "speakNot": + if ((jsRandom(1,100)-(disableCount*2)) > 90) { + slave.voice = 0; + } + disList.delete("speakNot"); + disableCount++; + break; + } + } + } + V.oneTimeDisableDisability = 0; + } + }; + + return GenerateNewSlave; +})(); /*SecForceEX JS*/ window.SFC = function() { diff --git a/src/Mods/DinnerParty/dinnerPartyExecution.tw b/src/Mods/DinnerParty/dinnerPartyExecution.tw new file mode 100644 index 0000000000000000000000000000000000000000..ad3b261a11420997ad73370405b8b604a4ae116d --- /dev/null +++ b/src/Mods/DinnerParty/dinnerPartyExecution.tw @@ -0,0 +1,592 @@ +:: Dinner Party Execution [nobr] + +/% To MOD: insert the following code into the passage PC Name and Title %/ +/% <<if $MOD_DinnerPartyTitleAchievement is 1>><<if $PC.title gt 0>><<set $titles.push("Master of the Culinary Arts")>><<else>><<set $titles.push("Mistress of the Culinary Arts")>><</if>><</if>> %/ + + <<set $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Main", $showEncyclopedia = 1, $encyclopedia = "Personal Assistant">> + + <<set _generateEnemies to 0>> + <<set $cash -= 1000>> + <<set _dinnerRating = 0>> + + /* 000-250-006 */ + <<if $seeImages == 1>> + <div class="imageRef medImg"> + <<SlaveArt $activeSlave 2 0>> + </div> + <div class="imageRef medImg"> + <<SlaveArt $activeSlave 2 0>> + </div> + <</if>> + /* 000-250-006 */ + + <<setLocalPronouns $activeSlave>> + + /%Event description%/ + $activeSlave.slaveName is carried out by four slaves on a huge platter and placed on the dining table. + <<if $activeSlave.fetish == "mindbroken">> + $His mind is broken. $He does not understand what's about happen, so there is little need to restrain $him. + <<elseif $activeSlave.devotion > 90>> + $He worships you and considers it an honor to be chosen for sacrifice. There is no need to restrain $him. + <<else>> + $He understands $he is about to be slaughtered liked an animal. Tears stream down $his face as $he struggles against $his bindings. + <</if>> + /* This needs to be rewritten. Take into account FS tastes and the fact that the player might not have a dick */ + $He is lying on $his back with an apple in $his mouth. You lift $his legs up in the air exposing $his nethers. You penetrate $him with your throbbing dick fucking her roughly and cuming quickly. Your guests form a line behind you, and do the same to her ass. Some of your guests take particular pleasure being rough with $activeSlave.slaveName. They enjoy making her squeal like a pig, knowing they are about to enjoy her flesh in a short while. After all of your guests had a turn with the little piggy, her ass is dripping with cum and a hint of blood. It seems your guests greatly @@.green;enjoy@@ themselves. You stand over her with a ceremonial dagger, + <<set $rep += 1000>> + <<if $activeSlave.fetish == "mindbroken">> + looking into her dull eyes. + <<elseif $activeSlave.devotion > 90>> + looking into her proud eyes. + <<else>> + looking into her terrified eyes begging for mercy. + <</if>> + You give the signal for your slaves to begin the ceremony. The four slaves hold $activeSlave.slaveName down on the platter. A fifth slave starts to give her oral sex. + $activeSlave.slaveName moans with the apple in her mouth. When she is on the edge of climax you plunge the ceremonial dagger into her chest. The pain causes her to bite down on the apple deeply. Tears mixed with the juices of the apple flows down her face. With a twist of your hand, you carve out her beating heart. + <<if ($activeSlave.fetish == "mindbroken") || ($activeSlave.devotion > 90)>> + Your guests @@.green;applaud@@ your slave’s willingness to die for $his <<= WrittenMaster()>>, a credit to your training. + <<set $rep += 500>> + <<else>> + Your guests @@.red;snicker@@ at your inability to provide a willing sacrifice. + <<set $rep -= 100>> + <</if>> + Your slaves carry the carcass to the kitchen for cooking preparations. With all the ingredients for the special dishes harvested, the carcass is placed on a spit slowly rotating over an open fire. You mingle with your guests while $activeSlave.slaveName is slowly being cooked. + <br><br> + + Your slaves begin to serve the appetizer... + <br> + /% Dicky Roll %/ + <<if $activeSlave.dick > 0>> + /% the dick is numbered from 0 to 5 %/ /*this isn't a problem at all*/ + <<set _dishRating = $activeSlave.dick>> + /*<img src='resources/spring roll.jpg' style="float:left" />*/ + ''//Dicky Roll//'': + <br> + $activeSlave.slaveName’s penis is wrapped in a spring roll wrapper, deep fried and placed on a plate. Green lettuce decorates the plate along with a side of dipping sauce. + <<if $activeSlave.dick >= 5>> + The massive length and girth of the penis impressed your guests greatly and have them all salivating at the sight of the dish. + <<elseif $activeSlave.dick >= 4>> + The large size of the penis impressed your guests and have them salivating at the sight of the dish. + <<elseif $activeSlave.dick >= 3>> + The regular size of the penis did not impress your guests much. Nevertheless they are looking forward to tasting the delicacy. + <<elseif $activeSlave.dick >= 2>> + The small size of the penis had your guests disappointed at the size of the dish. + <<else>> + The tiny size of the penis had your guests laughing at the disappointing dish. + <</if>> + <<if $activeSlave.balls >= 5>> + As you bite into the dick your palate is treated with a rich salty taste at the center of your dicky roll. You smile as you know this is the taste of cum trapped in the shaft of the penis at the moment of death. Your guests also greatly enjoy this exotic taste. + <<elseif $activeSlave.balls >= 4>> + As you bite into the dick your palate is treated with a distinct salty taste at the center of your dicky roll. You smile as you know this is the taste of cum trapped in the shaft of the penis at the moment of death. Your guests also enjoy this exotic taste. + <<set _dishRating -= 0.5>> + <<elseif $activeSlave.balls >= 3>> + As you bite into the dick your palate is treated with a faint salty taste at the center of your dicky roll. You smile as you know this is the taste of cum trapped in the shaft of the penis at the moment of death. Your guests also enjoy this exotic taste. + <<set _dishRating -= 1>> + <<elseif $activeSlave.balls >= 2>> + As you bite into the dick your palate is treated with a hint of salty taste at the center of your dicky roll. You smile as you know this is the taste of cum trapped in the shaft of the penis at the moment of death. Your guests also enjoy this exotic taste. + <<set _dishRating -= 1.5>> + <<elseif $activeSlave.balls >= 1>> + As you bite into the dick your palate is treated with barely a hint of salty taste at the center of your dicky roll. You smile as you know this is the taste of cum trapped in the shaft of the penis at the moment of death. Your guests also enjoy this exotic taste. + <<set _dishRating -= 2>> + <<else>> + As you bite into the dick you feel as if this dish is missing something. Something Je ne sais quoi. + <<set _dishRating -= 2.5>> + <</if>> + /% Dish rating, could be made into a seperate function/passage. The following will be called for every dish %/ + <<set _dinnerRating += _dishRating>> + <<if _dishRating > 5>> + <<set _dishRating = 5>> + <<elseif _dishRating < 0>> + <<set _dishRating = 0>> + <</if>> + <br><br> + This dish earned a score of _dishRating out of 5 stars. + <<if _dishRating >= 2>> + Your reputation has @@.green;increased@@. + <<set $rep += (_dishRating * 20)>> + <<elseif _dishRating >= 0>> + Your reputation has @@.red;decreased@@. + <<set $rep -= (_dishRating * 20)>> + <<else>> + Your reputation has @@.red;decreased@@. + <<set $rep -= 100>> + <</if>> + <br><br> + /% End of Dish rating %/ + <</if>> + /*<br style="clear:both" />*/ + <br> + /% Testy Meat Balls %/ + <<if $activeSlave.balls > 0>> + /*<img src='resources/meat balls.jpg' style="float:left" />*/ + The next course is ''//Testy Meat Balls//'': + <<set _dishRating = $activeSlave.balls>> /* I give up. Each and every dish will need a rework and score redesign. Definitely some crazy potential with FSs to do some intersting things.*/ + <br> + $activeSlave.slaveName's balls are coated in olive oil and sautéed. + /% Dish rating, could be made into a seperate function/passage. The following will be called for every dish %/ + <<set _dinnerRating += _dishRating>> + <<if _dishRating > 5>> + <<set _dishRating = 5>> + <<elseif _dishRating < 0>> + <<set _dishRating = 0>> + <</if>> + <br><br> + This dish earned a score of _dishRating out of 5 stars. + <<if _dishRating >= 2>> + Your reputation has @@.green;increased@@. + <<set $rep += (_dishRating * 20)>> + <<elseif _dishRating >= 0>> + Your reputation has @@.red;decreased@@. + <<set $rep -= (_dishRating * 20)>> + <<else>> + Your reputation has @@.red;decreased@@. + <<set $rep -= 100>> + <</if>> + <br><br> + /% End of Dish rating %/ + <</if>> + /*<br style="clear:both" />*/ + <br> + /% Camel Toe à l'orange %/ + <<if $activeSlave.vagina != -1>> + <<set _dishRating = 5>> + /*<img src='resources/steak.jpg' style="float:left" />*/ + The next course is ''//Camel Toe steak//'': + <br> + $activeSlave.slaveName's pussy is grilled like a steak. + <<if $activeSlave.clit >= 2>> /*These would all need to take into account clitoral hoods */ + $His huge clit sticking out of the camel toe is the cherry on top for this dish. + <<elseif $activeSlave.clit >= 1>> + $His large clit sticking out of the camel toe makes this dish aesthetically pleasing. + <<set _dishRating -= 1.5>> + <<else>> + $His small clit is hiding inside of the camel toe. It does not add to the scheme of this dish. + <<set _dishRating -= 2>> + <</if>> + <<if $activeSlave.labia >= 2>> + $His huge labia taste delicious. + <<elseif $activeSlave.labia >= 1>> + $His large labia is tasty. + <<set _dishRating -= 1.5>> + <<else>> + $His small labia leave you and your guests wanting more. + <<set _dishRating -= 2>> + <</if>> + + /% Dish rating, could be made into a seperate function/passage. The following will be called for every dish %/ + <<set _dinnerRating += _dishRating>> + <<if _dishRating > 5>> + <<set _dishRating = 5>> + <<elseif _dishRating < 0>> + <<set _dishRating = 0>> + <</if>> + <br><br> + This dish earned a score of _dishRating out of 5 stars. + <<if _dishRating >= 2>> + Your reputation has @@.green;increased@@. + <<set $rep += (_dishRating * 20)>> + <<elseif _dishRating >= 0>> + Your reputation has @@.red;decreased@@. + <<set $rep -= (_dishRating * 20)>> + <<else>> + Your reputation has @@.red;decreased@@. + <<set $rep -= 100>> + <</if>> + <br><br> + /% End of Dish rating %/ + <</if>> + /*<br style="clear:both" />*/ + <br> + /% Bonus dish Baby Veal Ragout %/ + <<if $activeSlave.preg >= 10>> + <<set _dishRating = 5>> + /*<img src='resources/veal ragout.jpg' style="float:left" />*/ + The next course is a bonus dish ''//Baby Veal Ragout//'': + <br> + $activeSlave.slaveName was pregnant so $he has a special bonus dish to offer your guests. $His fetus is boiled in a vinegar stock and stewed in butter. + <<if $activeSlave.preg >= 25>> + Your guests are pleased with the huge size of the dish. + <<elseif $activeSlave.preg >= 20>> + Your guests are pleased with the large size of the dish. + <<set _dishRating -= 1>> + <<elseif $activeSlave.preg >= 15>> + Your guests are satisfied with the decent size of the dish. + <<set _dishRating -= 2>> + <<else>> + Your guests are a little disappointed with the small size of the dish. + <<set _dishRating -= 3>> + <</if>> + + /% Dish Rating %/ + <<set _dinnerRating += _dishRating>> + <br><br> + This dish earned a score of _dishRating out of 5 stars. + Your reputation has @@.green;increased@@. + <<set $rep += (_dishRating * 20)>> + <br><br> + <</if>> + /*<br style="clear:both" />*/ + <br> + /% Titty Tartare %/ + <<set _dishRating = 5>> + /*<img src='resources/tartare.jpg' style="float:left" />*/ + The next course is ''//Titty Tartare//'': + <br> + $activeSlave.slaveName's tits are chopped into tiny cube size pieces mixed with onions, capers and seasoning. It is served raw with an egg yolk on top and a side of French fries. + <<if $activeSlave.boobsImplant > 0>> + As you and your guests take your first bite of the tartare you immediately spit out the meat. Who would have thought silicone is not edible. You have neglected to remove her breast implants before serving the titty tartare. The dish is now ruined. Your guests are @@.red;displeased@@ by your lack of attention to detail. + <<set _dishRating = 0>> + <<set $rep -= 500>> + <<else>> + <<if $activeSlave.boobs >= 4800>> + $His monstrous boobs are very tender and juicy. There are also enough servings to keep all of your guests satisfied. + <<elseif $activeSlave.boobs >= 2400>> + $His massive boobs are tender and juicy. Your guests are satisfied with the generous portions. + <<set _dishRating -= 1>> + <<elseif $activeSlave.boobs >= 1600>> + $His huge boobs are tender. Your guests are satisfied with the the portions. + <<set _dishRating -= 2>> + <<elseif $activeSlave.boobs >= 800>> + $His big boobs are tender and tasty. Your guests are satisfied with the portions, but wished for more. + <<set _dishRating -= 3>> + <<elseif $activeSlave.boobs >= 500>> + $His small boobs are tender. Your guests are disappointed with their portions. + <<set _dishRating -= 4>> + <<else>> + $His non-existent boobs leaves your guests disappointed. + <<set _dishRating -= 5>> + <</if>> + <<if $activeSlave.lactation >= 2>> + As you and your guests enjoy your tartare, suddenly you hear a loud crunch coming from the guest sitting right next to you. You see blood spewing from his mouth as he spits out his chipped tooth along with a lactation implant. You apologize profusely and pay the man ¤10000 as compensation. The rest of your guests are @@.red;not happy@@ that you serve them drugged meat. + <<set _dishRating = 0>> + <<set $rep -= 1000>> + <<elseif $activeSlave.lactation > 0 >> + You detect a hint of creamy taste to your tartare. The clearly lactating breast earns the dish an extra star. + <<set _dishRating += 1>> + <</if>> + <</if>> + + /% Dish rating, could be made into a seperate function/passage. The following will be called for every dish %/ + <<set _dinnerRating += _dishRating>> + <<if _dishRating > 5>> + <<set _dishRating = 5>> + <<elseif _dishRating < 0>> + <<set _dishRating = 0>> + <</if>> + <br><br> + This dish earned a score of _dishRating out of 5 stars. + <<if _dishRating >= 2>> + Your reputation has @@.green;increased@@. + <<set $rep += (_dishRating * 20)>> + <<elseif _dishRating >= 0>> + Your reputation has @@.red;decreased@@. + <<set $rep -= (_dishRating * 20)>> + <<else>> + Your reputation has @@.red;decreased@@. + <<set $rep -= 100>> + <</if>> + <br><br> + /% End of Dish rating %/ + /*<br style="clear:both" />*/ + <br> + /% Roast Long Pig %/ + /*<img src='resources/roast pig.jpg' style="float:left" />*/ + Your slaves begin to serve the main course ''//Roast Long Pig//'': + <br> + $activeSlave.slaveName is carried out with $his carcass roasted to a perfect golden brown color. $He is coated with BBQ sauce and dripping in $his own juices. The apple is still in $his mouth. + <<set _dishRating = 5>> + <<if $activeSlave.vagina == 0>> + $activeSlave.slaveName was a virgin. Eating of maiden meat is thought to be highly prestigious. It earns you an extra star for this dish. + <<set _dishRating += 1>> + <</if>> + <<if $activeSlave.age >= 60>> + $activeSlave.slaveName + " was old. $His meat is tough and leathery. + <<set _dishRating -= 2>> + <<elseif $activeSlave.age >= 40>> + $activeSlave.slaveName + " was middle aged. $His meat is stringy. + <<set _dishRating -= 1>> + <<elseif $activeSlave.age >= 20>> + $activeSlave.slaveName + " was young. $His meat is tender. + <<else>> + $activeSlave.slaveName + " was very young. $His meat is very tender. + <<set _dishRating += 1>> + <</if>> + <<if $activeSlave.weight > 95>> + $activeSlave.slaveName was too fat. It made the dish taste very greasy. + <<set _dishRating -= 2>> + <<elseif $activeSlave.weight > 30>> + $activeSlave.slaveName was fat. It made the dish taste greasy. + <<set _dishRating -= 1>> + <<elseif $activeSlave.weight > 10>> + $activeSlave.slaveName was juicy and yet not greasy. $He is a prime piece of meat. + <<set _dishRating += 0.5>> + <<elseif $activeSlave.weight >= -10>> + $activeSlave.slaveName was lean. $He is a good piece of meat. + <<elseif $activeSlave.weight >= -30>> + $activeSlave.slaveName was thin. $He does not provide enough meat for you and your guests. + <<set _dishRating -= 0.5>> + <<elseif $activeSlave.weight >= -95>> + $activeSlave.slaveName was too skinny. $He has very little meat on the bones. + <<set _dishRating -= 1>> + <<else>> + $activeSlave.slaveName was emaciated. $He has only bones and skin. + <<set _dishRating -= 2>> + <</if>> + <<if $activeSlave.muscles > 95>> + $activeSlave.slaveName has too much muscle and sinew. $His meat is too chewy. + <<set _dishRating -= 0.5>> + <<elseif $activeSlave.muscles > 50>> + $activeSlave.slaveName has strong muscles. It gives $his meat a very tasty texture. + <<set _dishRating += 0.5>> + <<elseif $activeSlave.muscles > 5>> + $activeSlave.slaveName has toned muscles. It gives $his meat a tasty texture. + <<else>> + $activeSlave.slaveName has no muscles. It gives $his meat a plain texture. + <<set _dishRating -= 1>> + <</if>> + <<if $activeSlave.lipsImplant > 0>> + All of sudden one of your guest’s face turns red, then purple. It is clear he is choking on something. You leap out of your seat, rush over to him and start the Heimlich maneuver. On your third thrust into his abdominal, a piece of lip implants flies out of his mouth and hits another guest square in the face. You apologize profusely for your carelessness in selecting the meat. The rest of your guests had a great laugh at your @@.red;expense@@. + <<set _dishRating -= 5>> + <<set $rep -= 500>> + <</if>> + <<if $activeSlave.buttImplant > 0>> + All of sudden one of your guest clutches his chest. His face turns pale as a ghost, foaming at the mouth falls over onto the table. You rush over to him, it is clear he is not breathing. You don’t know what’s wrong with him. It could not have been poison, since any toxins in the food would have been detected by your virtual assistant. You order your slave to rush the man to the nearest emergency clinic. You were informed later that he had died from ingesting a silicone butt implant. Your reputation @@.red;suffers@@ greatly due to this incident. + <<set _dishRating -= 10>> + <<set $rep -= 5000>> + <</if>> + + /% Dish rating, could be made into a seperate function/passage. The following will be called for every dish %/ + <<set _dinnerRating += _dishRating>> + <<if _dishRating > 5>> + <<set _dishRating = 5>> + <<elseif _dishRating < 0>> + <<set _dishRating = 0>> + <</if>> + <br><br> + This dish earned a score of _dishRating out of 5 stars. + <<if _dishRating >= 2>> + "Your reputation has @@.green;increased@@. + <<set $rep += (_dishRating * 20)>> + <<elseif _dishRating >= 0>> + "Your reputation has @@.red;decreased@@. + <<set $rep -= (_dishRating * 20)>> + <<else>> + "Your reputation has @@.red;decreased@@. + <<set $rep -= 100>> + <</if>> + <br><br> + /% End of Dish rating %/ + /*<br style="clear:both" />*/ + <br> + /% End of Dinner %/ + /% Total of man dishes each can earn 5 stars total 25, getting 12 stars means a successful evening %/ + <<if _dinnerRating >= 12>> + /% successful evening %/ + The party is in full swing. Your guests enjoy eating $activeSlave.slaveName and make good use of the slaves you provided for their pleasure. + Sounds of an orgy of food drink and sex echoes through your dining hall. Your guests ate, drank and fucked their fill. + As the evening draw to a close, there isn’t a single morsel of $activeSlave.slaveName left to be found. Some of your slaves show signs of teeth mark on their skin. Perhaps some guests got confused about what’s for eating and what’s for fucking? + The evening was a @@.green;success@@. + <<set $rep += (_dinnerRating * 100)>> + + <<if _dinnerRating >= 20>> + <br><br> + You have earned the 20 stars required for the title of + <<set $MOD_DinnerPartyTitleAchievement 0 1>> + <<if $PC.title > 0>> + @@.yellow;Master of The Culinary Arts.@@ + <<else>> + @@.yellow;Mistress of The Culinary Arts.@@ + <</if>> + + <br><br> + <</if>> + <<else>> + /% failed evening %/ + With most of your dishes earning a poor rating, your guests are @@.red;dissatisfied@@. + <<set $rep -= (_dinnerRating * 100)>> + They take out their frustrations on your slaves. Your slaves are being fucked roughly and abused. Cries of pain and pleads of mercy echoes through your dining hall. You decide to allow the abuse to continue as you do not want to antagonize your guests further. You watch with a forced smile as your favorite slaves are being slapped, whipped, choked and burned with cigarettes. + Some of your unlucky slaves had their health @@.red;reduced@@. + All of your slaves @@.mediumorchid;respect you less@@ and @@.gold;fear@@ you more as you place your reputation above their wellbeing. + <<for _dpe = 0; _dpe < $slaves.length; _dpe++>> + <<if random(0,1) > 0>> + <<set $slaves[_dpe].health -= 10>> + <</if>> + <<set $slaves[_dpe].devotion -= 5>> + <<set $slaves[_dpe].trust -= 5>> + <</for>> + + /% Head girl abuse %/ + <<if ($HeadGirl != 0) && ($activeSlave.assignment != "be your Head Girl")>> + <<setLocalPronouns $HeadGirl 2>> + <br><br> + You notice a group of guests corner your Head Girl. The group consists of some very powerful people. Most of them arcology owners themselves, some of them have more powerful arcologies than yours. + $HeadGirl.slaveName tries to slip away, but _he2 was grabbed at the neck by the leader of the pack. He pulls _him2 down to the ground forcefully. + $HeadGirl.slaveName knows better than to resist, _he2 is still a slave despite _his2 position as your head girl. A slave does not raise their hand against a Master, even one that’s not _his2 own. The leader rips off _his2 dress, exposing _his2 bare chest. Your head girl is frozen in terror when _he2 is lifted onto the hastily cleared dining hall table by several of the men. _Her2 eyes desperately search for you. You are the only one who can stop this. All that’s required is a single word from you. + $HeadGirl.slaveName's eyes meets yours; the look of relief on _his2 face is soon replaced by the sad realization that you will not intervene. + _His2 mouth forms the word + <<if $PC.title > 0>> + 'mast...' + <<else>> + 'mist...' + <</if>> + as you shake your head, _he2 closes _his2 mouth and resigns _himself2 to _his2 fate. + <br> + Your head girl is placed across the corner of the dining hall table face down, _his2 hands and legs held open by 4 men. _He2 finds a hand on _his2 ass, groping roughly. Then another hand on the other cheek, roughly parting _his2 globes to get better access. + /% Pussy Check %/ + <<if ($HeadGirl.vagina >= 0) && canDoVaginal($HeadGirl)>> + A finger traces along _his2 slit, finding the source of that moisture and pressing its way in. Another finger was added and the hand began to finger fuck _him2 roughly. After a few seconds a third finger was added and then a fourth, stretching _his2 pussy. + $HeadGirl.slaveName screams loudly as the entire hand was shoved up _his2 cunt without warning. + _His2 pussy has @@.lime;loosened@@. + <<set $HeadGirl.vagina += 1>> + <</if>> + One man moves to the head of $HeadGirl.slaveName and shoved his cock into _his2 mouth, fucking _his2 throat roughly. He buries his cock deep down _his2 throat all the way to his balls. + He places both hands around _his2 neck and squeezes with every stroke. Your head girl’s face turns red and gags uncontrollably. _His2 eyes rolls back as another man shoved his hard cock in _his2 asshole, sodomizing _him2 with no mercy. As your head girl made squeaking noises in pain, serval guests picked up forks and jabbed it at _his2 butt and _his2 back chanting "more meat... more meat..." and "squeal piggy squeal". You slump over your chair at the head of the table. Gulping down your drink, fighting back the urge to order your security drones to open fire on those men. You know those men would never dare to harm your head girl, not permanently, at least not anything your remote surgery couldn’t fix. It’s not as if you haven’t done worse to your slaves, but the message is clear, the attack on your head girl was meant as disrespect and an insult towards you. Raping your head girl is like raping you. You stare at the group of men gang raping your head girl at the end of your own dining table, you burning their @@.yellow;names and their faces@@ into your memory as they take turns fucking _him2. They make use of _his2 every hole. When they are done, _he2 was left on the floor, battered and bruised, covered in cum and blood from superficial wounds. + The leader of the pack pulls out his half erect cock pees on your head girl as a final insult towards you. The poor _girl2 is so spent that _he2 doesn’t even flinch at the urine hitting _his2 face. + He finishes showering your head girl, then turns towards you and says smilingly: + <br><br> + //"I must congratulate you// + <<if $PC.title > 0>> + //sir//, + <<else>> + //madam//, + <</if>> + //you trained a fine obedient slave. _He2 certainly understands _his2 position well."// You grit your teeth faking a smile, repeating the old the old adage, @@.yellow;revenge is dish best served cold@@. You have made some enemies tonight; you begin to plan a military conquest of them all. You will enjoy storming their arcologies and making them pay for this insult. + <br><br> + The abuse your head girl suffers had @@.red;decreased _his2 health@@ and _he2 is @@.mediumorchid;less devoted@@ to you as you allowed _him2 to be abused. + <br> + <<set $HeadGirl.health -= 20>> + <<set $HeadGirl.devotion -= 20>> + <<set _generateEnemies = 1>> + <</if>> + <</if>> + + <br><br> + /% Clean up and slaves reactions %/ + When the last of your guests has stumbled drunkenly out your door, your slaves begin the daunting task of cleanup. + <<if $familyTesting == 1>> + <<for _dpe = 0; _dpe < $slaves.length; _dpe++>> + <<if $activeSlave.mother == $slaves[_dpe].ID>> + $slaves[_dpe].slaveName is @@.mediumorchid;distraught@@ that you ate her daughter. She also @@.gold;fears@@ that she will be next. + <<run clearSummaryCache($slaves[_dpe])>> + <br><br> + <<set $slaves[_dpe].devotion -= 20, $slaves[_dpe].trust -= 20>> + <</if>> + <<if $activeSlave.father == $slaves[_dpe].ID>> + $slaves[_dpe].slaveName is @@.mediumorchid;distraught@@ that you ate her daughter. She also @@.gold;fears@@ that she will be next. + <<run clearSummaryCache($slaves[_dpe])>> + <br><br> + <<set $slaves[_dpe].devotion -= 10, $slaves[_dpe].trust -= 10>> + <</if>> + <<if $activeSlave.ID == $slaves[_dpe].father>> + $slaves[_dpe].slaveName is @@.mediumorchid;grieved@@ that you ate her father. She also @@.gold;fears@@ that she will be next. + <<run clearSummaryCache($slaves[_dpe])>> + <br><br> + <<set $slaves[_dpe].devotion -= 10, $slaves[_dpe].trust -= 10>> + <</if>> + <<if $activeSlave.ID == $slaves[_dpe].mother>> + $slaves[_dpe].slaveName is @@.mediumorchid;grieved@@ that you ate her mother. She also @@.gold;fears@@ that she will be next. + <<run clearSummaryCache($slaves[_dpe])>> + <br><br> + <<set $slaves[_dpe].devotion -= 20, $slaves[_dpe].trust -= 20>> + <</if>> + <<switch areSisters($activeSlave, $slaves[_dpe])>> + <<case 1>> + $slaves[_dpe].slaveName is @@.mediumorchid;devastated@@ that you ate her twin. She also @@.gold;fears@@ that she will be next. + <<run clearSummaryCache($slaves[_dpe])>> + <br><br> + <<set $slaves[_dpe].devotion -= 30, $slaves[_dpe].trust -= 30>> + <<case 2>> + $slaves[_dpe].slaveName is @@.mediumorchid;grieved@@ that you ate her sister. She also @@.gold;fears@@ that she will be next. + <<run clearSummaryCache($slaves[_dpe])>> + <br><br> + <<set $slaves[_dpe].devotion -= 20, $slaves[_dpe].trust -= 20>> + <<case 3>> + $slaves[_dpe].slaveName is @@.mediumorchid;disheartened@@ that you ate her half-sister. She also @@.gold;fears@@ that she will be next. + <<run clearSummaryCache($slaves[_dpe])>> + <br><br> + <<set $slaves[_dpe].devotion -= 10, $slaves[_dpe].trust -= 10>> + <</switch>> + <</for>> + <<else>> + <<if $activeSlave.relation != 0>> + <<for _dpe = 0; _dpe < $slaves.length; _dpe++>> + <<if ($slaves[_dpe].ID == $activeSlave.relationTarget) && ($slaves[_dpe].fetish != "mindbroken")>> + $slaves[_dpe].slaveName is @@.mediumorchid;distraught@@ that you ate her $activeSlave.relation. She also @@.gold;fears@@ that she will be next. + <<set $slaves[_dpe].devotion -= 20, $slaves[_dpe].trust -= 20>> + <<break>> + <</if>> + <</for>> + <</if>> + <</if>> + <<if $activeSlave.relationship != 0>> + <<for _dpe = 0; _dpe < $slaves.length; _dpe++>> + <<if ($slaves[_dpe].ID == $activeSlave.relationshipTarget) && ($slaves[_dpe].fetish != "mindbroken")>> + $slaves[_dpe].slaveName is @@.mediumorchid;distraught@@ that you ate her best source of comfort and companionship in a life of bondage. + <<set $slaves[_dpe].devotion -= $slaves[_dpe].relationship*5>> + <<set $slaves[_dpe].devotion -= 20>> + <<break>> + <</if>> + <</for>> + <</if>> + <<if $activeSlave.rivalry != 0>> + <<for _dpe = 0; _dpe < $slaves.length; _dpe++>> + <<if ($slaves[_dpe].ID == $activeSlave.rivalryTarget) && ($slaves[_dpe].fetish != "mindbroken")>> + $slaves[_dpe].slaveName is @@.hotpink;pleased@@ that she won't have to see her rival any more. + <<set $slaves[_dpe].devotion += $slaves[_dpe].rivalry*5>> + <<break>> + <</if>> + <</for>> + <</if>> + + The slaves who do not already worship you @@.mediumorchid;resents@@ your monstrous appetite and @@.mediumaquamarine;fear@@ a similar fate awaits them. + The fat slaves are @@.mediumaquamarine;worried@@ they are being fattened for consumption. + <<for _dpe = 0; _dpe < $slaves.length; _dpe++>> + <<if ($slaves[_dpe].fetish != "mindbroken") && ($slaves[_dpe].devotion > 20)>> + <<set $slaves[_dpe].devotion -= 5>> + <<set $slaves[_dpe].trust -= 5>> + <<if $slaves.diet == "fattening" || $slaves.weight > 10>> + <<set $slaves[_dpe].trust -= 5>> + <</if>> + <</if>> + <</for>> + /*<br style="clear:both" />*/ + <br> + + <<if $activeSlave.origin != 0>> + <<set $toSearch = $activeSlave.origin>> + <<if $toSearch.indexOf("Slave Shelter") != -1>> + <<set $shelterAbuse += 1>> + <</if>> + <</if>> + + <<include "Remove activeSlave">> + +/* generate enemies +<<if _generateEnemies == 1>> + <<if ndef $MOD_enemyList>> + <<set $MOD_enemyList = []>> + <</if>> + <<for _i = 0; _i < 6; _i++>> + <<include "Generate XY Slave">> + <<set $activeSlave.devotion = -20>> + <<set $activeSlave.trust = -2>> + <<set $activeSlave.oldDevotion = -20>> + <<set $activeSlave.origin = "She was once an arcology owner like yourself, who made the mistake of insulting you.">> + <<set $activeSlave.career = 0>> + <<set $activeSlave.prestige = 3>> + <<set $activeSlave.prestigeDesc = "You stormed her arcology, killed her guards and enslaved her in revenge for insulting you at a dinner party.">> + <<set $activeSlave.health = 20>> + <<set $activeSlave.dick = 5>> + <<set $activeSlave.balls = 5>> + <<set $activeSlave.intelligenceImplant = 1>> + <<set $activeSlave.age = random(30,44)>> + <<set $MOD_enemy = {leader: 0, numSlave: 0, slaveTotalHP: 0, numDrone: 0, droneTotalHP: 0, numMerc: 0, mercTotalHP: 0, weekCreated: 0, enemyIndex: -1, hostility: 0}>> + <<set $MOD_enemy.leader = $activeSlave>> + <<set $MOD_enemy.weekCreated = $week>> + <<set $MOD_enemy.numSlave = random(Math.trunc($slaves.length * 0.7), Math.trunc($slaves.length * 1.3))>> + <<set $MOD_enemy.numDrone = random(25, 75)>> + <<set $MOD_enemy.numMerc = random(10, 60)>> + <<set $MOD_enemyList.push($MOD_enemy)>> + <</for>> +<</if>> +*/ \ No newline at end of file diff --git a/src/Mods/DinnerParty/dinnerPartyPreperations.tw b/src/Mods/DinnerParty/dinnerPartyPreperations.tw new file mode 100644 index 0000000000000000000000000000000000000000..e6bcb58fcf94431b6bb4dd2c2d72ec0e8f75e4ba --- /dev/null +++ b/src/Mods/DinnerParty/dinnerPartyPreperations.tw @@ -0,0 +1,37 @@ +:: Dinner Party Preperations [nobr] + +<<set $nextButton = "Cancel The Event", $nextLink = "Main">> + +Hosting of high society dinner parties will increase your prestige significantly and it is expected for someone of your station. Since there is a lack of animal meat, human meat is served at these events to illustrate the wealth and power of the host. The success of the evening is judged by how well the human offering is prepared. Guests to these events are encouraged to rate the dishes and special dishes are expected. If the host receives 5 stars on all the dishes, they will receive the coveted title "<<if $PC.title == 1>>Master<<else>>Mistress<</if>> of The Culinary Arts". You ask $assistantName to show you a list of cooking instructions for those dishes. + + +<h1>Cooking Instructions and Recipes:</h1> + +''Roast Long Pig'' – Made with the meat of a human roasted on a spit. Young meat is better than old meat. There should be some amount of fat to make the meat juicy, but not too much fat that makes the meat greasy. Muscles affect the texture of the meat. Meat without muscles lacks texture while an excess will be tough and hard to chew. Remember you can’t eat silicone, and virgin meat is highly sought after. If the human is pregnant a veal dish can also be made from the fetus. + +<br><br> +''Dicky Roll'' – An erect penis made into a spring roll. For best results harvest the penis at the moment of ejaculation. The size of the penis and the amount of accumulated ejaculate all affect the quality of the dish. Too big of a dick and too thin of semen can both ruin a dish. + +<br><br> +''Testy Meat Balls'' – Testicles made into meat balls served with a sauce. Size matters. + +<br><br> +''Titty Tartare'' – Made from finely chopped breasts, mixed with onions, capers and seasonings, served raw. Big breasts make the best quality meat for this dish. To add a hint of creamy taste, make sure the breasts are lactating. Remember you can’t eat silicone. + +<br><br> +''Camel Toe à l'orange'' – Pussy grilled like a steak. A big clit and big labia will improve the quality of the dish. + +<br><br> + +Your assistant will take care of the invitations and all the arrangements; all you need to do is pick the meat. + +<br><br> + +__Select Your Meat:__ +<br><br> +<<assignmentFilter>> +<span id="ComingGoing"> + <<showallAssignmentFilter>> + <<include "Slave Summary">> + <<resetAssignmentFilter>> +</span> \ No newline at end of file diff --git a/src/SecExp/authorityReport.tw b/src/SecExp/authorityReport.tw index d25dcdca15f0d7e3e5692fde9d64bb896027f6bc..6c274f0a9b62d08ee06d7d07d9fa5275933aae5f 100644 --- a/src/SecExp/authorityReport.tw +++ b/src/SecExp/authorityReport.tw @@ -38,13 +38,13 @@ Your authority is <</if>> <<if $rep >= 19500>> - Your legend is so well known that your mere presence command respect and obedience, increasing your authority. + Your legend is so well known that your mere presence commands respect and obedience, increasing your authority. <<set _authGrowth += 10 * random(10,20)>> <<elseif $rep >= 15000>> - Your reputation is so high that your mere presence command respect, increasing your authority. + Your reputation is so high that your mere presence commands respect, increasing your authority. <<set _authGrowth += 10 * random(5,15)>> <<elseif $rep >= 10000>> - Your reputation is high enough that your presence command some respect, increasing your authority. + Your reputation is high enough that your presence commands some respect, increasing your authority. <<set _authGrowth += 10 * random(2,8)>> <</if>> @@ -154,7 +154,7 @@ Your authority is <</if>> <<if $edictsAuthUpkeep > 0>> - Some of your authority is spent maintaining your edicts + Some of your authority is spent maintaining your edicts. <<set _authGrowth -= $edictsAuthUpkeep>> <</if>> diff --git a/src/SecExp/securityReport.tw b/src/SecExp/securityReport.tw index 779597f8195cac63ecfa2e1e0f4ae2718ebfeb54..4a0c2204c7183da48ddf50b083b593ad431e795c 100644 --- a/src/SecExp/securityReport.tw +++ b/src/SecExp/securityReport.tw @@ -207,7 +207,7 @@ <<elseif $ASlaves < 3000>> The number of slaves in the arcology is becoming an impediment for law enforcement, facilitating crime growth.<<set _crimeGrowth += 1>> <<else>> - The number of slaves in the arcology is becoming a a big issue for law enforcement, facilitating crime growth.<<set _crimeGrowth += 1.5>> + The number of slaves in the arcology is becoming a big issue for law enforcement, facilitating crime growth.<<set _crimeGrowth += 1.5>> <</if>> <<if $security <= 20>> The security measures in place are severely limited, allowing crime to grow uncontested. diff --git a/src/SecExp/tradeReport.tw b/src/SecExp/tradeReport.tw index 266b6fe5d297380ea3c865c25f8347290f5bb95f..a57f7ca877111497fbc0f33f68ab783c26f371c9 100644 --- a/src/SecExp/tradeReport.tw +++ b/src/SecExp/tradeReport.tw @@ -65,15 +65,15 @@ <</if>> <<if $transportHub == 1>> <<if $airport == 1>> - The arcology's airport, while small, helps facilitate the commercial development of the arcology.<<set _tradeChange += 1>> + The airport, while small, helps facilitate the commercial development of the arcology.<<set _tradeChange += 1>> <<elseif $airport == 2>> - The arcology's airport, while fairly small, helps facilitate the commercial development of the arcology.<<set _tradeChange += 1.5>> + The airport, while fairly small, helps facilitate the commercial development of the arcology.<<set _tradeChange += 1.5>> <<elseif $airport == 3>> - The arcology's airport helps facilitate the commercial development of the arcology.<<set _tradeChange += 2>> + The airport helps facilitate the commercial development of the arcology.<<set _tradeChange += 2>> <<elseif $airport == 4>> - The arcology's airport is a great boon to the commercial development of the arcology.<<set _tradeChange += 2.5>> + The airport is a great boon to the commercial development of the arcology.<<set _tradeChange += 2.5>> <<else>> - The arcology's airport is an incredible boon to the commercial development of the arcology.<<set _tradeChange += 3>> + The airport is an incredible boon to the commercial development of the arcology.<<set _tradeChange += 3>> <</if>> <<if $terrain != "oceanic" && $terrain != "marine">> diff --git a/src/SpecialForce/Report.tw b/src/SpecialForce/Report.tw index 1795725b1f51d865d0aed2f9863c0e87d6b79572..8e14d0da9e987d9818f11aa7fd58b06545df1a0b 100644 --- a/src/SpecialForce/Report.tw +++ b/src/SpecialForce/Report.tw @@ -11,7 +11,7 @@ <<set $SFUnit.Troops += Math.ceil(random(-2*$SFUnit.Troops/100,-3*$SFUnit.Troops/100))>> <</if>> <</if>> -<<set _Income = 1000000,_actionMultiplier = 1,_troopMultiplier = 1,_unitMultiplier = 1,_depravityMultiplier = 1,_SFupkeep = 0,_FNGs = 10,_Trade = 0.025>> +<<set _SFIncome = 75000,_actionMultiplier = 1,_troopMultiplier = 1,_unitMultiplier = 1,_depravityMultiplier = 1,_SFupkeep = 0,_FNGs = 10,_Trade = 0.025>> <<if $SF.SpecOps > 0>> <<if $SF.SpecOps === 1>> <<set $SFUC = Math.ceil($SFUnit.Troops*.1),$SFUnit.Troops-$SFUC>> <<else>> <<set $SFUC = Math.ceil($SFUnit.Troops*.25),$SFUnit.Troops-$SFUC>> <</if>> @@ -24,61 +24,61 @@ <</if>> <<if $SFUnit.Firebase > 0>> - <<set _FNGs += $SFUnit.Firebase,_Trade += 0.5*$SFUnit.Firebase,_unitMultiplier += 0.2*$SFUnit.Firebase,_SFupkeep += 500*(10+$SFUnit.Firebase)>> + <<set _FNGs += $SFUnit.Firebase,_Trade += 0.5*$SFUnit.Firebase,_unitMultiplier += 7.5*$SFUnit.Firebase+2*Math.pow($SFUnit.Firebase,2),_SFupkeep += 500*(10+$SFUnit.Firebase)>> <</if>> <<if $SFUnit.Armoury > 0>> - <<set _FNGs += (2*$SFUnit.Armoury),_Trade += 0.25*$SFUnit.Armoury,_unitMultiplier += 0.3*$SFUnit.Armoury, _SFupkeep += 100*$SFUnit.Armoury>> + <<set _FNGs += (2*$SFUnit.Armoury),_Trade += 0.25*$SFUnit.Armoury,_unitMultiplier += 7.5*$SFUnit.Armoury+2*Math.pow($SFUnit.Armoury,2), _SFupkeep += 100*$SFUnit.Armoury>> <</if>> <<if $SFUnit.Drugs > 0>> - <<set _FNGs += $SFUnit.Drugs,_Trade += 0.25*$SFUnit.Drugs,_unitMultiplier += 0.3*$SFUnit.Drugs,_SFupkeep += 300*$SFUnit.Drugs>> + <<set _FNGs += $SFUnit.Drugs,_Trade += 0.25*$SFUnit.Drugs,_unitMultiplier += 7.5*$SFUnit.Drugs+2*Math.pow($SFUnit.Drugs,2),_SFupkeep += 300*$SFUnit.Drugs>> <</if>> <<if $SFUnit.Firebase >= 1>> <<if $SFUnit.AV > 0>> - <<set _FNGs += $SFUnit.AV,_Trade += 0.25*$SFUnit.AV,_unitMultiplier += 0.8*$SFUnit.AV,_SFupkeep += 1000*$SFUnit.AV>> + <<set _FNGs += $SFUnit.AV,_Trade += 0.25*$SFUnit.AV,_unitMultiplier += 7.5*$SFUnit.AV+2*Math.pow($SFUnit.AV,2),_SFupkeep += 1000*$SFUnit.AV>> <</if>> <<if $SFUnit.TV > 0>> - <<set _FNGs += $SFUnit.TV,_Trade += 0.25*$SFUnit.TV,_unitMultiplier += 0.7*$SFUnit.TV, _SFupkeep += 800*$SFUnit.TV>> + <<set _FNGs += $SFUnit.TV,_Trade += 0.25*$SFUnit.TV,_unitMultiplier += 7.5*$SFUnit.TV+2*Math.pow($SFUnit.TV,2), _SFupkeep += 800*$SFUnit.TV>> <</if>> <<if $SFUnit.PGT > 0>> - <<set _Trade += 0.25*($SFUnit.PGT),_unitMultiplier += 2.5*$SFUnit.PGT,_SFupkeep += 5000+1000*$SFUnit.PGT>> + <<set _Trade += 0.25*($SFUnit.PGT),_unitMultiplier += 15*$SFUnit.PGT+3*Math.pow($SFUnit.PGT,2),_SFupkeep += 5000+1000*$SFUnit.PGT>> <</if>> <</if>> <<if $SFUnit.Firebase >= 2 && $SFUnit.Drones > 0>> - <<set _FNGs += $SFUnit.Drones,_Trade += 0.5*$SFUnit.Drones,_unitMultiplier += 0.5*$SFUnit.Drones,_SFupkeep += 500*$SFUnit.Drones>> + <<set _FNGs += $SFUnit.Drones,_Trade += 0.5*$SFUnit.Drones,_unitMultiplier += 7.5*$SFUnit.Drones+2*Math.pow($SFUnit.Drones,2),_SFupkeep += 500*$SFUnit.Drones>> <</if>> <<if $SFUnit.Firebase >= 4>> <<if $SFUnit.AA > 0>> - <<set _FNGs += $SFUnit.AA,_Trade += 0.25*$SFUnit.AA,_unitMultiplier += $SFUnit.AA,_SFupkeep += 1000*$SFUnit.AA>> + <<set _FNGs += $SFUnit.AA,_Trade += 0.25*$SFUnit.AA,_unitMultiplier += 7.5*$SFUnit.AA+2*Math.pow($SFUnit.AA,2),_SFupkeep += 1000*$SFUnit.AA>> <</if>> <<if $SFUnit.TA > 0>> - <<set _FNGs += $SFUnit.TA,_Trade += 0.25*$SFUnit.TA,_unitMultiplier += 0.8*$SFUnit.TA,_SFupkeep += 800*$SFUnit.TA>> + <<set _FNGs += $SFUnit.TA,_Trade += 0.25*$SFUnit.TA,_unitMultiplier += 7.5*$SFUnit.TA+2*Math.pow($SFUnit.TA,2),_SFupkeep += 800*$SFUnit.TA>> <</if>> <<if $SFUnit.SpacePlane > 0>> - <<set _FNGs += $SFUnit.SpacePlane,_Trade += 0.25*$SFUnit.SpacePlane,_unitMultiplier += $SFUnit.SpacePlane,_SFupkeep += 1000*$SFUnit.SpacePlane>> + <<set _FNGs += $SFUnit.SpacePlane,_Trade += 0.25*$SFUnit.SpacePlane,_unitMultiplier += 7.5*$SFUnit.SpacePlane+2*Math.pow($SFUnit.SpacePlane,2),_SFupkeep += 1000*$SFUnit.SpacePlane>> <</if>> <<if $SFUnit.GunS > 0>> - <<set _FNGs += $SFUnit.GunS,_Trade += 0.25*$SFUnit.GunS,_unitMultiplier += 2*$SFUnit.GunS,_SFupkeep += 3000+700*$SFUnit.GunS>> + <<set _FNGs += $SFUnit.GunS,_Trade += 0.25*$SFUnit.GunS,_unitMultiplier += 12*$SFUnit.GunS+3*Math.pow($SFUnit.GunS,2),_SFupkeep += 3000+700*$SFUnit.GunS>> <</if>> <<if $SFUnit.Satellite > 0>> - <<set _FNGs += $SFUnit.Satellite,_Trade += 0.25*$SFUnit.Satellite,_unitMultiplier += 3*$SFUnit.Satellite>> + <<set _FNGs += $SFUnit.Satellite,_Trade += 0.25*$SFUnit.Satellite,_unitMultiplier += 15*$SFUnit.Satellite+5*Math.pow($SFUnit.Satellite,2)>> <</if>> <<if $SFUnit.GiantRobot > 0>> - <<set _FNGs += $SFUnit.GiantRobot,_Trade += 0.25*$SFUnit.GiantRobot,_unitMultiplier += 3*$SFUnit.GiantRobot,_SFupkeep += 10000+1500*$SFUnit.GiantRobot>> + <<set _FNGs += $SFUnit.GiantRobot,_Trade += 0.25*$SFUnit.GiantRobot,_unitMultiplier += 15*$SFUnit.GiantRobot+5*Math.pow($SFUnit.GiantRobot,2),_SFupkeep += 10000+1500*$SFUnit.GiantRobot>> <</if>> <<if $SFUnit.MissileSilo > 0>> - <<set _Trade += 0.25*$SFUnit.MissileSilo,_unitMultiplier += 3*$SFUnit.MissileSilo,_SFupkeep += 1000*$SFUnit.MissileSilo>> + <<set _Trade += 0.25*$SFUnit.MissileSilo,_unitMultiplier += 15*$SFUnit.MissileSilo+5*Math.pow($SFUnit.MissileSilo,2),_SFupkeep += 1000*$SFUnit.MissileSilo>> <</if>> <</if>> <<if $SFUnit.AircraftCarrier > 0>> - <<set _FNGs += $SFUnit.AircraftCarrier,_Trade += 0.25*$SFUnit.AircraftCarrier,_unitMultiplier += $SFUnit.AircraftCarrier,_SFupkeep += 800*$SFUnit.AircraftCarrier>> + <<set _FNGs += $SFUnit.AircraftCarrier,_Trade += 0.25*$SFUnit.AircraftCarrier,_unitMultiplier += 9*$SFUnit.AircraftCarrier+3*Math.pow($SFUnit.AircraftCarrier,2),_SFupkeep += 800*$SFUnit.AircraftCarrier>> <</if>> <<if $SFUnit.Sub > 0>> - <<set _FNGs += $SFUnit.Sub,_Trade += 0.25*$SFUnit.Sub,_unitMultiplier += 0.9*$SFUnit.Sub,_SFupkeep += 900*$SFUnit.Sub>> + <<set _FNGs += $SFUnit.Sub,_Trade += 0.25*$SFUnit.Sub,_unitMultiplier += 7.5*$SFUnit.Sub+2*Math.pow($SFUnit.Sub,2),_SFupkeep += 900*$SFUnit.Sub>> <</if>> <<if $SFUnit.HAT > 0>> - <<set _Trade += 0.25*$SFUnit.HAT,_unitMultiplier += 0.7*$SFUnit.HAT,_SFupkeep += 700*$SFUnit.HAT>> + <<set _Trade += 0.25*$SFUnit.HAT,_unitMultiplier += 7.5*$SFUnit.HAT+2*Math.pow($SFUnit.HAT,2),_SFupkeep += 700*$SFUnit.HAT>> <</if>> <<set _SFD = $SF.Depravity>> @@ -94,14 +94,15 @@ <<case "shell shocked">> <<set _Trade += 0.05,_SFD -= 0.05,_unitMultiplier -= 0.5>> <</switch>> -<<if $SF.Target == "raiding">> <<set _SFD += 0.05,_actionMultiplier += 1>> +<<if $SF.Target == "raiding">> <<set _SFD += 0.05,_actionMultiplier += 0.5>> <<elseif $SF.Target == "secure">> <<set _SFD -= 0.05,_actionMultiplier += 0.2>> <<else>><<set _SFD -= 0.1,_actionMultiplier -= 0.5>><</if>> -<<if $SF.ROE == "free">> <<set _actionMultiplier *= .8,_SFD += 0.05,_Trade += _Trade*.95>> -<<elseif $SF.ROE == "hold">> <<set _actionMultiplier *= 1.2,_SFD -= 0.05,_Trade += _Trade*1.05>> <</if>> -<<if $SF.Regs == "none">> <<set _actionMultiplier *= .8,_SFD += 0.05,_Trade += _Trade*.95>> -<<elseif $SF.Regs == "strict">> <<set _actionMultiplier *= 1.2,_SFD -= 0.05,_Trade += _Trade*1.05>> <</if>> -<<if _SFD != 0>><<set _depravityMultiplier = 1+_SFD>> +<<if $SF.ROE == "free">> <<set _actionMultiplier *= 0.8,_SFD += 0.05,_Trade += _Trade*.95>> +<<elseif $SF.ROE == "hold">> <<set _actionMultiplier *= 1.1,_SFD -= 0.05,_Trade += _Trade*1.05>> <</if>> +<<if $SF.Regs == "none">> <<set _actionMultiplier *= 0.8,_SFD += 0.05,_Trade += _Trade*.95>> +<<elseif $SF.Regs == "strict">> <<set _actionMultiplier *= 1.1,_SFD -= 0.05,_Trade += _Trade*1.05>> <</if>> +<<set _depravityMultiplier = 1+_SFD>> +<<if _SFD != 0>> <<if _SFD < 0>> <<set _ef0 = _SFD*10>> <<elseif _SFD > 0>> <<set _ef0 = 1-(_SFD/10)>> <</if>> <<set _Trade += _Trade*(_ef0)>> <</if>> @@ -115,13 +116,15 @@ <</if>> <<if $secExp > 0>> <<set $authority += $SF.Units*10,$authority = Math.clamp($authority, 0, 20000)>> <</if>> -<<set _Income = Math.ceil(_Income*_troopMultiplier*_unitMultiplier*_actionMultiplier*_depravityMultiplier-_SFupkeep),$SFUnit.Troops += Math.round(_FNGs/2)>> +<<set _SFIncome = Math.ceil(_SFIncome*_troopMultiplier*_unitMultiplier*_actionMultiplier*_depravityMultiplier-_SFupkeep),$SFUnit.Troops += Math.round(_FNGs/2)>> +/*Remove below line if hard mode ever gets fixed*/ +<<if $economy > 1>><<set _SFIncome = Math.ceil(_SFIncome*(1+($week/10)))>><</if>> <<if $SFUnit.Troops > 2000>> <<set $SFUnit.Troops = random(1955,1999)>> <</if>> <<if $rep > 20000>> <<set $rep = 20000>> <</if>> <<if $arcologies[0].prosperity > $AProsperityCap>> <<set $arcologies[0].prosperity = $AProsperityCap>> <</if>> -<<if _Income >= 100000>> - <<set _Profitable = 1,$SF.Subsidy = 0,$cash += _Income>> +<<if _SFIncome >= 100000>> + <<set _Profitable = 1,$SF.Subsidy = 0,$cash += _SFIncome>> <<else>> <<set _Profitable = 0>> <</if>> <<if $SFUnit.Drugs >= 8 || $SFUnit.Drugs >= 10>> <<set _Deaths = 0,_SurvivalChance = 50>> @@ -152,7 +155,7 @@ locating and striking targets of opportunity, capturing both material loot and n These activities have, overall, @@.green;improved@@ your arcology's prosperity. The goods procured by the $SF.Lower this week, after accounting for the spoils retained by individual soldiers were <<if _Profitable>> -@@.green;more than sufficient@@ to cover expenses. Excess materiel and human assets totaling @@.yellowgreen;<<print cashFormat(_Income)>>@@ (after liquidation) were transferred to your accounts. +@@.green;more than sufficient@@ to cover expenses. Excess materiel and human assets totaling @@.yellowgreen;<<print cashFormat(_SFIncome)>>@@ (after liquidation) were transferred to your accounts. <<else>> @@.red;barely enough@@ to cover expenses. More growth will be needed to ensure profitability. <</if>> diff --git a/src/SpecialForce/WeeklyChoices.tw b/src/SpecialForce/WeeklyChoices.tw index aac1bdac321a4425d6412a6e41ab24bffa406307..064f833b990590a7f3e8dca42584c564d38e2cba 100644 --- a/src/SpecialForce/WeeklyChoices.tw +++ b/src/SpecialForce/WeeklyChoices.tw @@ -105,7 +105,7 @@ <br><br>What do you want to do with the Colonel in the HQ? <br><<link "Talk">><<replace "#result1">> <br><br>You and the Colonel talk over some $PC.refreshment, where she ends up talking about her past. You learn a little more about her. -<<set $SFColonel.status +=3>> +<<set $SFColonel.Status +=3>> <<switch random(1,6)>> <<case 1>> <<set $PC.medicine += 1>><<set $PC.trading += 1>><<set $PC.slaving += 1>> diff --git a/src/init/setupVars.tw b/src/init/setupVars.tw index b6b4c897338b6607395ad88c4ee1b655dd610a2d..6ed2c731f7d47247bf2656cb743a4d813f1fc8d8 100644 --- a/src/init/setupVars.tw +++ b/src/init/setupVars.tw @@ -659,7 +659,7 @@ <<set setup.serbianMaleNames = []>> <<set setup.serbianSlaveSurnames = ["Aćimović", "Adamović", "Aleksić", "Amidžić", "Andelković", "AnÄ‘elković", "Andrić", "Antić", "Antonijević", "Arsenijević", "Arsić", "Avramović", "Azirović", "Babić", "Bajić", "Blagojević", "Bogdanović", "Bojović", "BoÅ¡ković", "Božić", "Božović", "Branković", "Brkić", "Brnabić", "ÄŒihorić", "Cirić", "Ćirić", "Ćirković", "ÄŒolić", "Ćosić", "Crnokrak", "ĆurÄić", "Cvetanović", "Cvetković", "Damnjanović", "Davidović", "Dejanović", "Despotović", "Dimić", "Dimitrijević", "Dimitrovska", "Dinić", "Djordjević", "Dokić", "Äokić", "Dordević", "ÄorÄ‘ević", "Dragićević", "Äukić", "Durdević", "ÄurÄ‘ević", "Durić", "Äurić", "Äurović", "Filipović", "Gajić", "Gavrilović", "GliÅ¡ić", "Golubović", "Grbić", "Grujić", "Gvozdić", "Horvat", "Ignjatović", "Ilić", "IvaniÅ¡ević", "Ivanović", "Ivaonović", "Ivković", "Jakovljević", "JakÅ¡ić", "Janjić", "Janković", "Jelić", "Jeremić", "Jevtić", "Jocić", "Jokić", "Joksimović", "Jovanović", "Jovanovski", "Jović", "JoviÄić", "Karan", "KarleuÅ¡a", "KiÅ¡", "Kmezić", "Knežević", "Kocić", "Kojić", "Kostadinović", "Kostić", "Kovać", "KovaÄ", "Kovacević", "KovaÄević", "Krsmanović", "Krstić", "Kukrić", "Kuzmanović", "Latinović", "Lavić", "Lazarević", "Lazić", "Lazović", "Lekić", "Lukić", "Luković", "Maksimović", "Mandić", "Manojlović", "Marić", "Marinković", "Marjanović", "Marković", "Matić", "Mićić", "Mihailović", "Mihajlović", "MijaÄević", "Mijailović", "Mijatović", "Miladinović", "Milanović", "Milenković", "Miletić", "Milić", "Milićević", "Milivojević", "Miljković", "Milojević", "Milojković", "Milosavljević", "Milosević", "MiloÅ¡ević", "Milovanović", "Milutinović", "Mirković", "MiÅ¡ić", "Mitić", "Mitrović", "Mladenović", "Mrkić", "Nad", "NaÄ‘", "Nedeljković", "Nesić", "NeÅ¡ić", "NeÅ¡ković", "Nikolić", "Novaković", "Obradović", "Ostojić", "Pajić", "Panić", "Pantelić", "Pantić", "Paunović", "Pavlović", "PejÄić", "Perić", "PeriÅ¡ić", "Perović", "PeÅ¡ić", "Petić", "Petković", "Petrović", "Popov", "Popović", "Radenković", "Radić", "Radivojević", "Radojević", "RadojiÄić", "Radojković", "Radosavljević", "Radovanović", "Radović", "Radulović", "Rajić", "Rajković", "Rakić", "RanÄ‘elović", "Ranković", "Ražnatović", "Redžepova", "Ristić", "Savić", "Sekulić", "SeniÄar", "Simić", "Simonović", "Spasić", "Spasojević", "Stamenković", "Stanić", "Stanković", "Stanojević", "Stefanović", "Stevanović", "Stojanović", "Stojiljković", "Stojković", "StoÅ¡ić", "Tadić", "Tanasković", "Tasić", "Tatalović", "Terzić", "TeÅ¡ić", "Todorović", "TomaÅ¡ević", "Tomić", "Topalović", "ToÅ¡ić", "Tot", "Tozić", "Trajković", "Trifunović", "Tržan", "UroÅ¡ević", "Varga", "Vasić", "Vasiljević", "VeliÄković", "Veljković", "Veselinović", "Vojinović", "VuÄelić", "VuÄković", "Vujić", "Vujović", "Vukadinović", "Vuković", "Zarić", "Zdravković", "Živanović", "Zivković", "Živković", "Zorić"]>> -<<set setup.australianSlaveNames = ["Abbey", "Abbie", "Abigail", "Adelaide", "Aisha", "Alexandra", "Alice", "Alycia", "Alyssa", "Amanda", "Amelia", "Amethyst", "Anna", "Annabelle", "Annaleise", "Anne", "Anneliisa", "Anthea", "Aurelia", "Ava", "Avril", "Bambi", "Bella", "Brdiget", "Brittni", "Brody", "Brooke", "Caitlin", "Caitlyn", "Camille", "Cassandra", "Cassi", "Cassie", "Catherine", "Charlotte", "Chloe", "Claire", "Clare", "Codie", "Delta", "Elise", "Ella", "Ellie", "Elodie", "Elouise", "Elyse", "Emilie", "Emily", "Erin", "Eva", "Evelyn", "Gabriella", "Gemma", "Georgie", "Georgina", "Grace", "Hanna", "Hannah", "Harper", "Holly", "Iggy", "Imogen", "Indiana", "Isabel", "Isabella", "Isabelle", "Isla", "Jade", "Jan", "Janelle", "Jennifer", "Jesinta", "Jess", "Jessica", "Jessie", "Joanne", "Julia", "Juliana", "Kahili", "Kate", "Kath", "Kim", "Kimberley", "Krystal", "Kylie", "Lara", "Laura", "Lauren", "Layla", "Lenka", "Lily", "Lisa", "Louise", "Lucy", "Lydia", "Maddison", "Madeleine", "Maia", "Margot", "Matilda", "Maxine", "May", "Maya", "Megan", "Mia", "Michelle", "Mila", "Miranda", "Morgan", "Narelle", "Nathalie", "Nicky", "Nicole", "Nikki", "Olivia", "Paige", "Pania", "Phoebe", "Poppy", "Portia", "Quentin", "Rachael", "Rachel", "Radha", "Rebecca", "Rekha", "Renae", "Robyn", "Rose", "Rosie", "Ruby", "Ruth", "Sara", "Sarah", "Sarita", "Scarlett", "Shanina", "Sheila", "Sienna", "Simone", "Siobhan", "Skye", "Sofia", "Sophia", "Sophie", "Stephanie", "Tabrett", "Tahlia", "Tal", "Tallulah", "Tasha", "Tegan", "Teresa", "Tiah", "Vanessa", "Victoria", "Violet", "Viva", "Yvonne", "Zoe"]>> +<<set setup.australianSlaveNames = ["Abbey", "Abbie", "Abigail", "Adelaide", "Aisha", "Alexandra", "Alice", "Alycia", "Alyssa", "Amanda", "Amelia", "Amethyst", "Anna", "Annabelle", "Annaleise", "Anne", "Anneliisa", "Anthea", "Aurelia", "Ava", "Avril", "Bambi", "Bella", "Bridget", "Brittni", "Brody", "Brooke", "Caitlin", "Caitlyn", "Camille", "Cassandra", "Cassi", "Cassie", "Catherine", "Charlotte", "Chloe", "Claire", "Clare", "Codie", "Delta", "Elise", "Ella", "Ellie", "Elodie", "Elouise", "Elyse", "Emilie", "Emily", "Erin", "Eva", "Evelyn", "Gabriella", "Gemma", "Georgie", "Georgina", "Grace", "Hanna", "Hannah", "Harper", "Holly", "Iggy", "Imogen", "Indiana", "Isabel", "Isabella", "Isabelle", "Isla", "Jade", "Jan", "Janelle", "Jennifer", "Jesinta", "Jess", "Jessica", "Jessie", "Joanne", "Julia", "Juliana", "Kahili", "Kate", "Kath", "Kim", "Kimberley", "Krystal", "Kylie", "Lara", "Laura", "Lauren", "Layla", "Lenka", "Lily", "Lisa", "Louise", "Lucy", "Lydia", "Maddison", "Madeleine", "Maia", "Margot", "Matilda", "Maxine", "May", "Maya", "Megan", "Mia", "Michelle", "Mila", "Miranda", "Morgan", "Narelle", "Nathalie", "Nicky", "Nicole", "Nikki", "Olivia", "Paige", "Pania", "Phoebe", "Poppy", "Portia", "Quentin", "Rachael", "Rachel", "Radha", "Rebecca", "Rekha", "Renae", "Robyn", "Rose", "Rosie", "Ruby", "Ruth", "Sara", "Sarah", "Sarita", "Scarlett", "Shanina", "Sheila", "Sienna", "Simone", "Siobhan", "Skye", "Sofia", "Sophia", "Sophie", "Stephanie", "Tabrett", "Tahlia", "Tal", "Tallulah", "Tasha", "Tegan", "Teresa", "Tiah", "Vanessa", "Victoria", "Violet", "Viva", "Yvonne", "Zoe"]>> <<set setup.australianMaleNames = []>> <<set setup.australianSlaveSurnames = ["Abbott", "Adams", "Alexander", "Allen", "Anderson", "Andrews", "Armstrong", "Ayris", "Azalea", "Bailey", "Baker", "Barker", "Barnes", "Barrett", "Bayet", "Bell", "Bennett", "Bethell", "Bianca", "Bingle", "Black", "Blundell", "Blyth", "Bowen", "Boyd", "Breeds", "Brisley", "Brooks", "Brown", "Browning", "Bryce", "Burdeu", "Burgess", "Burke", "Burns", "Burr", "Butcher", "Butler", "Byrne", "Cameron", "Campbell", "Carey", "Carroll", "Carter", "Cazzulimi", "Chan", "Chapman", "Chen", "Cherry", "Cheyenne", "Cilmi", "Clark", "Clarke", "Clemens", "Cole", "Coleman", "Collins", "Cook", "Cooke", "Cooper", "Cornish", "Cox", "Crawford", "Cribbon", "Curtis", "Dalle", "Davidson", "Davies", "Davis", "Dawson", "Day", "de Gouw", "De Gouw", "de Ravin", "de Rossi", "Dean", "Debnam", "Dee", "Dixon", "Douglas", "Doyle", "Duncan", "Dundee", "Dundovic", "Dunn", "Eckhardt", "Edwards", "Elliott", "Ellis", "Englert", "Evans", "Evers", "Ferguson", "Fisher", "Fitzgerald", "Fletcher", "Folino", "Ford", "Forge", "Forscutt", "Foster", "Fox", "Francis", "Fraser", "Freeman", "Gale", "Gardner", "George", "Getheridge-Giumelli", "Getheridge", "Gibson", "Gill", "Gillard", "Giumelli", "Gleave", "Gliwski", "Gold", "Gomes", "Gonsalves", "Goodrem", "Gordon", "Graham", "Grant", "Gray", "Green", "Griffin", "Griffiths", "Haig", "Hall", "Hamilton", "Harris", "Harrison", "Hart", "Harvey", "Hawkins", "Hayes", "Heathcote", "Henderson", "Hill", "Holmes", "Holt", "Howard", "Hughes", "Hunt", "Hunter", "Irwin", "Jackson", "Jacobsen", "James", "Jenkins", "Jenneke", "Johnson", "Johnston", "Jones", "Kane", "Kelley", "Kelly", "Kennedy", "Kerr", "Kershaw", "Kim", "King", "Knight", "Kripac", "Lane", "Lawley", "Lawrence", "Lee", "Lewis", "Li", "Lim", "Liu", "Lloyd", "Lowe", "Lucas", "Luther", "Lynch", "MacDonald", "MacKenzie", "Malcolm", "Mangan", "Marais", "Marshall", "Martin", "Mason", "Matthews", "May", "McCarthy", "McDonald", "McKenzie", "McLean", "McMahon", "McNamee", "McNaught", "McNeil", "Miller", "Mills", "Mitchell", "Moore", "Morgan", "Morris", "Morrison", "Morton", "Mundy", "Murphy", "Murray", "Neiberding", "Nelson", "Newman", "Nguyen", "Nobis", "Northwood", "O'Brien", "O'Connor", "O'Neill", "Oman", "Origliasso", "Page", "Palmer", "Parekh", "Parker", "Patel", "Paterson", "Payne", "Pearce", "Pearson", "Perry", "Peters", "Phillips", "Piazza", "Porter", "Powell", "Price", "Ravin", "Reid", "Reynolds", "Richards", "Richardson", "Rippon", "Robbie", "Roberts", "Robertson", "Robinson", "Rockatansky", "Rogers", "Rose", "Ross", "Rowe", "Russell", "Ryan", "Sanderson", "Saunders", "Scott", "Sears", "Seiffert", "Shaik", "Shaw", "Simpson", "Singh", "Smith", "Spencer", "Stasey", "Stella", "Stephens", "Stevens", "Stewart", "Stone", "Strachan", "Stracke", "Strahovski", "Sullivan", "Sutherland", "Tan", "Taylor", "Thomas", "Thompson", "Thomson", "Tonisson", "Tonkin", "Torv", "Tozzi", "Tran", "Trunfio", "Tupper", "Turner", "Twigley", "Valance", "van den Dungen", "Van Den Dungen", "Vickers", "Visser", "Walker", "Wallace", "Walsh", "Wang", "Ward", "Ware", "Wass", "Watson", "Watts", "Webb", "Webster", "Wells", "West", "Whelan", "White", "Wilkenfeld", "Wilkinson", "Williams", "Williamson", "Willmer", "Wilson", "Wong", "Wood", "Woods", "Woolrich", "Wright", "Young", "Zhang"]>> diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw index 4b55ab3564977795fa60cc8a57a4346a28bc71ed..fcc0a9383ec9b3d4172a2d9939c50738807aa7c8 100644 --- a/src/init/storyInit.tw +++ b/src/init/storyInit.tw @@ -283,7 +283,7 @@ You should have received a copy of the GNU General Public License along with thi <<set $seeBestiality = 0>> <<set $seeHyperPreg = 0>> <<set $seePreg = 1>> - <<set $dangerousPregancy = 1>> + <<set $dangerousPregnancy = 0>> <<set $seeCircumcision = 1>> <<set $seeAge = 1>> <<set $seeDicks = 25>> @@ -1416,7 +1416,9 @@ erectileImplant: 0 } >> <<set $merchantFSWares = ["GenderRadicalistResearch", "TransformationFetishistResearch", "AssetExpansionistResearch", "SlimnessEnthusiastResearch", "YouthPreferentialistResearch", "HedonisticDecadenceResearch"]>> -<<set $merchantIllegalWares = ["childhoodFertilityInducedNCS"]>> +<<set $merchantIllegalWares = ["childhoodFertilityInducedNCS", "UterineRestraintMesh", "RapidCellGrowthFormula"]>> +<<set $RapidCellGrowthFormula = 0>> +<<set $UterineRestraintMesh = 0>> <<if ndef $PC.hacking>> <<set $PC.hacking = 0>> diff --git a/src/js/DefaultRules.tw b/src/js/DefaultRules.tw index c5d4b6a5a7f9c5e085a3f52995d1eea575c2cd3b..2fc956a4b92fac1328624af59baac6a569279a3a 100644 --- a/src/js/DefaultRules.tw +++ b/src/js/DefaultRules.tw @@ -1487,7 +1487,7 @@ window.DefaultRules = (function() { } } } else if ((rule.diet == "cleansing")) { - if (((slave.diet !== "cleansing") && (slave.health < 100))) { + if ((slave.diet !== "cleansing") && (slave.health < 90) && (slave.chem >= 10)) { slave.diet = "cleansing"; r += `<br>${slave.slaveName} has been put on a diet of cleansers.`; } diff --git a/src/js/generateNewSlaveJS.tw b/src/js/generateNewSlaveJS.tw new file mode 100644 index 0000000000000000000000000000000000000000..b26003b486320467dfc3c988a5482553112b8c50 --- /dev/null +++ b/src/js/generateNewSlaveJS.tw @@ -0,0 +1,1403 @@ +:: Generate New Slave JS [script] + +window.GenerateNewSlave = (function(){ + 'use strict'; + let V, slave; + + function GenerateNewSlave(sex) { + V = State.variables; + BaseSlave(); + slave = V.activeSlave; + + preGenCombinedStats(); + if (!sex) { + if (jsRandom(0,99) < V.seeDicks) { + GenerateXYSlave(); + } else if (V.seeDicks > 0) { + var femaleSlaveGen = 80; + if (V.arcologies[0].FSGenderFundamentalistSMR == 1 || V.arcologies[0].FSRepopulationFocusSMR == 1) { + femaleSlaveGen = 90; + } else if (V.arcologies[0].FSGenderRadicalist != "unset") { + femaleSlaveGen = 50; + } + if (jsRandom(1,100) > femaleSlaveGen && jsRandom(0,99) < V.seeDicks) { + GenerateXYSlave(); + } else { + GenerateXXSlave(); + } + } else { + GenerateXXSlave(); + } + } else if (sex == "XY") { + GenerateXYSlave(); + } else { + GenerateXXSlave(); + } + + postGenCleanup(); + }; + + function preGenCombinedStats() { + slave.ID = V.IDNumber++; + slave.weekAcquired = V.week; + slave.canRecruit = 1; + slave.devotion = jsRandom(-90,-60); + slave.trust = jsRandom(-45,-25); + slave.weight = jsRandom(-100,180); + slave.health = jsRandom(-50,50); + + WombInit(slave); + generateAge(); + generateIntelligence(); + generateCareer(); + generateNationality(); /* includes race selection */ + generateAccent(); + nationalityToName(slave); + generateRacialTraits(); + }; + + function postGenCleanup() { + generateBoobTweaks(); /* split this up for female vs. male? */ + generateSkills(); + generateDisabilities(); + generatePronouns(slave); + if (passage() == "Slave Markets" && V.slaveMarket == "corporate" && V.captureUpgradeRace != "unselected" && V.captureUpgradeRace != "none") { + slave.race = V.captureUpgradeRace; + } + slave.origRace = slave.race; + slave.origEye = slave.eyeColor; + slave.origHColor = slave.hColor; + slave.origSkin = slave.skin; + }; + + function GenerateXXSlave() { + slave.ovaries = 1; + slave.pubertyXY = 0; + slave.energy = jsRandom(1,85); + /* Superfetation as rare genetic disorder 1 from 100, not active for now. + if (jsRandom(0,99) < 1) { + slave.superfetation = 1; + } + */ + + generateXXBodyProportions(); + generateVagina(); + generateXXPreferences(); + generateXXButt(); + generateXXBoobs(); + generateXXFace(); + generateXXPregAdaptation(); + generateXXVoice(); + generateXXTeeth(); + generateXXMods(); + generateXXBodyHair(); + generateXXPuberty(); + }; + + function GenerateXYSlave() { + slave.genes = "XY"; + slave.hLength = 10; + slave.prostate = 1; + slave.pubertyXX = 0; + slave.energy = jsRandom(15,90); + + generateXYBodyProportions(); + generateDick(); + generateCircumcision(); + generateXYPreferences(); /* must happen after genitalia generation */ + generateXYButt(); /* must happen after preferences */ + generateXYBoobs(); + generateXYFace(); + generateXYPregAdaptation(); + generateXYVoice(); + generateXYTeeth(); + generateXYMods(); + generateXYBodyHair(); + generateXYPuberty(); + }; + + function generateXXBodyProportions() { + slave.height = Math.round(Height.random(slave)); + if (slave.height >= Height.mean(slave) * 170/162.5) { + slave.hips = jsEither([-1, 0, 0, 1, 1, 2, 2]); + slave.shoulders = jsEither([-1, -1, 0, 0, 0, 1]); + } else { + slave.hips = jsEither([-1, 0, 0, 0, 1, 1, 2]); + slave.shoulders = jsEither([-2, -1, -1, 0, 0, 1]); + } + if (slave.physicalAge <= 11) { + slave.hips = jsEither([-2, -2, -1, -1, 0]); + } else if (slave.physicalAge <= 13) { + slave.hips = jsEither([-2, -1, -1, 0, 1]); + } + if (slave.weight < -30) { + slave.waist = jsRandom(-55,0); + } else if (slave.physicalAge < 13) { + slave.waist = jsRandom(-25,25); + } else if (slave.weight <= 30) { + slave.waist = jsRandom(-45,45); + } else if (slave.weight <= 160) { + slave.waist = jsRandom(0,55); + } else { + slave.waist = jsRandom(50,100); + } + }; + + function generateXYBodyProportions() { + slave.height = Math.round(Height.random(slave)); + if (slave.physicalAge <= 13) { + if (slave.height > Height.mean(slave) * 170/172.5) { + slave.hips = jsEither([-2, -1, -1, 0, 1]); + slave.shoulders = jsEither([-1, -1, 0, 0, 0, 1]); + } else { + slave.hips = jsEither([-2, -2, -1, -1, 0]); + slave.shoulders = jsEither([-2, -1, -1, 0, 0, 1]); + } + } else { + if (slave.height > Height.mean(slave) * 170/172.5) { + slave.hips = jsEither([-2, -1, -1, 0, 1]); + slave.shoulders = jsEither([-1, 0, 1, 1, 2, 2]); + } else { + slave.hips = jsEither([-2, -2, -1, -1, 0]); + slave.shoulders = jsEither([-1, 0, 0, 1, 1, 2]); + } + } + if (slave.physicalAge < 13) { + slave.waist = jsRandom(-15,25); + } else if (slave.weight < -30) { + slave.waist = jsRandom(-45,45); + } else if (slave.weight <= 30) { + slave.waist = jsRandom(-15,65); + } else if (slave.weight <= 160) { + slave.waist = jsRandom(5,100); + } else { + slave.waist = jsRandom(50,100); + } + }; + + function generateVagina() { + if (slave.physicalAge <= 13) { + slave.vagina = jsEither([0, 0, 0, 0, 0, 0, 0, 1]); + } else if (slave.physicalAge <= 15) { + slave.vagina = jsEither([0, 0, 0, 0, 0, 0, 1, 1]); + } else if (slave.physicalAge <= 17) { + slave.vagina = jsEither([0, 0, 0, 0, 0, 1, 1, 1]); + } else if (slave.physicalAge < 20) { + slave.vagina = jsEither([0, 1]); + } else if (slave.physicalAge > 30) { + slave.vagina = jsEither([1, 1, 1, 1, 2]); + } else { + slave.vagina = jsEither([0, 0, 1, 1, 1]); + } + + if (slave.physicalAge <= 11) { + slave.clit = jsEither([0, 0, 0, 0, 0, 0, 0, 0, 1]); + } else if (slave.physicalAge <= 13) { + slave.clit = jsEither([0, 0, 0, 0, 0, 0, 0, 1, 1]); + } else if (slave.physicalAge <= 15) { + slave.clit = jsEither([0, 0, 0, 0, 0, 0, 0, 1, 2]); + } else { + slave.clit = jsEither([0, 0, 0, 0, 0, 0, 1, 1, 2]); + } + + if (slave.physicalAge <= 11) { + slave.labia = jsEither([0, 0, 0, 0, 0, 0, 0, 1, 1]); + } else if (slave.physicalAge <= 12) { + slave.labia = jsEither([0, 0, 0, 0, 0, 0, 1, 1, 1]); + } else if (slave.physicalAge <= 13) { + slave.labia = jsEither([0, 0, 0, 0, 0, 1, 1, 1, 1]); + } else if (slave.physicalAge <= 14) { + slave.labia = jsEither([0, 0, 0, 0, 1, 1, 1, 1, 2]); + } else if (slave.physicalAge <= 15) { + slave.labia = jsEither([0, 0, 0, 1, 1, 1, 1, 2, 2]); + } else { + slave.labia = jsEither([0, 0, 0, 1, 1, 1, 1, 2, 2, 3]); + } + + if (slave.energy < random(1,80)) { + slave.vaginaLube = 0; + } else if ( slave.physicalAge > random(35,60)) { + slave.vaginaLube = 0; + } else { + slave.vaginaLube = 1; + } + slave.foreskin = jsRandom(0,4); + }; + + function generateDick() { + slave.vagina = -1; + slave.clit = 0; + slave.preg = 0; + + if (slave.physicalAge <= 13) { + slave.dick = jsEither([1, 1, 1, 1, 2, 2, 2, 3]); + if (V.seeExtreme == 1) { + slave.balls = jsEither([0, 0, 1, 1, 1, 2, 2, 2, 2, 3, 3]); + } else { + slave.balls = jsEither([1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3]); + } + slave.scrotum = slave.balls; + } else if (slave.physicalAge <= 15) { + slave.dick = jsEither([1, 1, 1, 2, 2, 2, 3]); + if (V.seeExtreme == 1) { + slave.balls = jsEither([0, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4]); + } else { + slave.balls = jsEither([1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4]); + } + slave.scrotum = slave.balls; + } else if (slave.physicalAge <= 17) { + slave.dick = jsEither([1, 1, 2, 2, 3, 3]); + if (V.seeExtreme == 1) { + slave.balls = jsEither([0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 5]); + } else { + slave.balls = jsEither([1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 5]); + } + slave.scrotum = slave.balls; + } else { + slave.dick = jsEither([1, 2, 2, 2, 3, 3, 3, 4, 4, 5]); + if (V.seeExtreme == 1) { + slave.balls = jsEither([0, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5]); + } else { + slave.balls = jsEither([1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5]); + } + if (slave.balls != 0) { + slave.scrotum = slave.balls + jsEither([0, 0, 1]); + } else { + slave.scrotum = 0; + } + if (jsRandom(1,100) < 3) { + slave.vasectomy = 1; + } + } + }; + + function generateCircumcision() { + /* The default rate of 50* is wildly unrepresentative, and there is extreme regional variation. */ + /* + What we want is the prevalence among newborns, since this game + happens about 20 years in the future, but we'll use this lacking + something better. + https://pophealthmetrics.biomedcentral.com/articles/10.1186/s12963-016-0073-5 + Right now we mostly just break it down by country. + It would be better to break it down by both country + and race if statistics are available. + */ + if (V.seeCircumcision == 0) { + slave.foreskin = slave.dick + jsRandom(0,1); + } else { + /* Temporarily use activeSlave.foreskin to store the chance of circumcision. */ + switch (slave.nationality) { + case "Afghan": + case "Iranian": + case "Moroccan": + case "Palestinian": + case "Sahrawi": + case "Tunisian": + slave.foreskin = 100; + break; + case "Comorian": + case "Gabonese": + case "Iraqi": + case "Jordanian": + case "Kurdish": + case "Mauritanian": + case "Nigerian": + case "Tajik": + case "Turkish": + case "Yemeni": + slave.foreskin = 99; + break; + case "Algerian": + case "Azerbaijani": + case "Liberian": + case "Maldivian": + slave.foreskin = 98; + break; + case "Djiboutian": + case "Eritrean": + case "Ivorian": + case "Libyan": + case "Saudi": + case "Uzbek": + slave.foreskin = 97; + break; + case "Nigerien": + case "Pakistani": + case "Sierra Leonean": + case "Turkmen": + case "Zairian": + slave.foreskin = 96; + break; + case "a Cook Islander": + case "Egyptian": + case "Gambian": + case "Guamanian": + case "Malagasy": + case "Nauruan": + case "Ni-Vanuatu": + case "Niuean": + case "Palauan": + case "Samoan": + case "a Solomon Islander": + case "Togolese": + case "Tongan": + case "Tuvaluan": + slave.foreskin = 95; + break; + case "Cameroonian": + case "Senegalese": + case "Somali": + slave.foreskin = 94; + break; + case "Bangladeshi": + case "Beninese": + case "Bissau-Guinean": + case "Indonesian": + case "Syrian": + slave.foreskin = 93; + break; + case "Ethiopian": + case "Filipina": + case "Ghanan": + case "Israeli": + case "Kosovan": + slave.foreskin = 92; + break; + case "Kenyan": + case "Kyrgyz": + slave.foreskin = 91; + break; + case "Burkinabé": + case "Omani": + slave.foreskin = 88; + break; + case "Equatoguinean": + slave.foreskin = 87; + break; + case "Kuwaiti": + case "Malian": + slave.foreskin = 86; + break; + case "Guinean": + slave.foreskin = 84; + break; + case "Bahraini": + slave.foreskin = 81; + break; + case "French Polynesian": + slave.foreskin = 78; + break; + case "American": + case "Qatari": + slave.foreskin = 77; + break; + case "Emirati": + slave.foreskin = 76; + break; + case "Chadian": + slave.foreskin = 74; + break; + case "Tanzanian": + slave.foreskin = 72; + break; + case "Congolese": + slave.foreskin = 70; + break; + case "Central African": + slave.foreskin = 63; + break; + case "Burundian": + case "Malaysian": + slave.foreskin = 61; + break; + case "Lebanese": + slave.foreskin = 60; + break; + case "Angolan": + slave.foreskin = 58; + break; + case "Fijian": + case "Kazakh": + slave.foreskin = 56; + break; + case "Bruneian": + case "Korean": + case "Mosotho": + /* Population-weighted average of South Korea and North Korea. */ + slave.foreskin = 52; + break; + case "New Caledonian": + slave.foreskin = 50; + break; + case "Albanian": + slave.foreskin = 48; + break; + case "Mozambican": + slave.foreskin = 47; + break; + case "South African": + slave.foreskin = 45; + break; + case "Dominican": + slave.foreskin = 43; + break; + case "Bosnian": + slave.foreskin = 42; + break; + case "Sudanese": + slave.foreskin = 39; + break; + case "Mexican": + slave.foreskin = 38; + break; + case "Macedonian": + slave.foreskin = 34; + break; + case "a New Zealander": + slave.foreskin = 33; + break; + case "Canadian": + slave.foreskin = 32; + break; + case "Scottish": + slave.foreskin = 28; + break; + case "Australian": + case "Ugandan": + slave.foreskin = 27; + break; + case "Namibian": + slave.foreskin = 26; + break; + case "South Sudanese": + slave.foreskin = 24; + break; + case "Belgian": + case "Cypriot": + case "Thai": + slave.foreskin = 23; + break; + case "Malawian": + slave.foreskin = 22; + break; + case "British": + slave.foreskin = 21; + break; + case "Puerto Rican": + slave.foreskin = 20; + break; + case "Montenegrin": + slave.foreskin = 19; + break; + case "Mauritian": + slave.foreskin = 17; + break; + case "Motswana": + case "Singaporean": + case "Surinamese": + slave.foreskin = 15; + break; + case "Chinese": + case "French": + case "Indian": + case "Jamaican": + slave.foreskin = 14; + break; + case "Bulgarian": + case "Rwandan": + case "Zambian": + slave.foreskin = 13; + break; + case "French Guianan": + case "Guyanese": + case "Russian": + slave.foreskin = 12; + break; + case "German": + slave.foreskin = 11; + break; + case "Belarusian": + case "Georgian": + case "Papua New Guinean": + slave.foreskin = 10; + break; + case "Japanese": + case "Zimbabwean": + slave.foreskin = 9; + break; + case "Slovene": + case "Sri Lankan": + case "Swazi": + case "Taiwanese": + slave.foreskin = 8; + break; + case "Catalan": + case "Haitian": + case "Spanish": + slave.foreskin = 7; + break; + case "Austrian": + case "Dutch": + case "East Timorese": + case "Swiss": + case "Trinidadian": + slave.foreskin = 6; + break; + case "Danish": + case "Greek": + case "a Liechtensteiner": + case "Swedish": + slave.foreskin = 5; + break; + case "Burmese": + case "Cambodian": + case "Mongolian": + case "Nepalese": + case "Peruvian": + case "Serbian": + slave.foreskin = 4; + break; + case "Argentinian": + case "Italian": + case "Norwegian": + slave.foreskin = 3; + break; + case "Luxembourgian": + case "Tibetan": + case "Ukrainian": + case "Vincentian": + slave.foreskin = 2; + break; + case "Andorran": + case "Barbadian": + case "Bermudian": + case "Bhutanese": + case "Brazilian": + case "Croatian": + case "Finnish": + case "Hungarian": + case "Irish": + case "Moldovan": + case "Monégasque": + case "Panamanian": + case "Portuguese": + case "Seychellois": + case "Uruguayan": + slave.foreskin = 1; + break; + case "Antiguan": + case "Armenian": + case "Bahamian": + case "Belizean": + case "Bolivian": + case "Cape Verdean": + case "Chilean": + case "Colombian": + case "Costa Rican": + case "Cuban": + case "Czech": + case "Dominiquais": + case "Ecuadorian": + case "Estonian": + case "Greenlandic": + case "Grenadian": + case "Guatemalan": + case "Honduran": + case "I-Kiribati": + case "Icelandic": + case "Kittitian": + case "Laotian": + case "Latvian": + case "Lithuanian": + case "Maltese": + case "Marshallese": + case "Micronesian": + case "Nicaraguan": + case "Paraguayan": + case "Polish": + case "Romanian": + case "Saint Lucian": + case "Salvadoran": + case "Sammarinese": + case "São Toméan": + case "Slovak": + case "Vatican": + case "Venezuelan": + case "Vietnamese": + slave.foreskin = 0; + break; + default: + /* Some overlooked country, or possibly stateless. Use global average. */ + slave.foreskin = 38; + } + /* Second pass for minorities in other countries. */ + if (slave.race == "middle eastern" && slave.foreskin < 76) { + slave.foreskin = 76; + } + if (slave.race == "semitic" && slave.foreskin < 90) { + slave.foreskin = 90; + } + /* Chance activeSlave.foreskin back to the normal meaning. */ + if (jsRandom(0,99) < slave.foreskin) { + slave.foreskin = 0; + } else { + slave.foreskin = slave.dick + jsRandom(0,1); + } + } + }; + + function generateXXPreferences() { + randomizeAttraction(slave); + slave.fetishStrength = jsRandom(0,90); + slave.fetish = jsEither(["none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "submissive", "submissive", "cumslut", "humiliation", "humiliation", "buttslut", "boobs", "pregnancy", "dom", "sadist", "masochist"]); + slave.behavioralFlaw = jsEither(["none", "none", "none", "arrogant", "bitchy", "odd", "hates men", "hates women", "hates women", "anorexic", "gluttonous", "devout", "liberated"]); + + if (slave.behavioralFlaw == "devout") { + slave.sexualFlaw = jsEither(["none", "repressed", "shamefast", "apathetic", "crude", "judgemental"]); + } else { + slave.sexualFlaw = jsEither(["none", "none", "none", "none", "hates oral", "hates anal", "hates penetration", "repressed", "idealistic", "shamefast", "apathetic", "crude", "judgemental"]); + } + if (slave.behavioralFlaw == "none" && jsRandom(1,10) == 1) { + slave.behavioralQuirk = jsEither(["confident", "cutting", "funny", "adores women", "adores men", "fitness", "insecure", "sinful", "advocate"]); + } + if (slave.sexualFlaw == "none" && jsRandom(1,10) == 1) { + slave.sexualQuirk = jsEither(["gagfuck queen", "painal queen", "strugglefuck queen", "tease", "romantic", "perverted", "caring", "unflinching", "size queen"]); + } + }; + + function generateXYPreferences() { + randomizeAttraction(slave); + slave.fetishStrength = jsRandom(0,90); + slave.fetish = jsEither(["none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "submissive", "cumslut", "humiliation", "buttslut", "buttslut", "boobs", "dom", "sadist", "masochist"]); + slave.behavioralFlaw = jsEither(["none", "none", "none", "arrogant", "bitchy", "odd", "hates men", "hates men", "hates men", "hates women", "anorexic", "gluttonous", "devout", "liberated"]); + + if (slave.behavioralFlaw == "devout") { + slave.sexualFlaw = jsEither(["none", "repressed", "shamefast", "apathetic", "crude", "judgemental"]); + } else { + slave.sexualFlaw = jsEither(["none", "none", "none", "none", "hates oral", "hates anal", "hates anal", "repressed", "idealistic", "shamefast", "apathetic", "crude", "judgemental"]); + } + if (slave.behavioralFlaw == "none" && jsRandom(1,10) == 1) { + slave.behavioralQuirk = jsEither(["confident", "cutting", "funny", "adores women", "adores men", "fitness", "insecure", "sinful", "advocate"]); + } + if (slave.sexualFlaw == "none" && jsRandom(1,10) == 1) { + slave.sexualQuirk = jsEither(["gagfuck queen", "painal queen", "strugglefuck queen", "tease", "romantic", "perverted", "caring", "unflinching", "size queen"]); + } + }; + + function generateXXButt() { + if (slave.physicalAge <= 11) { + slave.butt = jsEither([1, 1, 1, 1, 1, 1, 1]); + } else if (slave.physicalAge <= 12) { + slave.butt = jsEither([1, 1, 1, 1, 1, 2, 2]); + } else if (slave.physicalAge <= 13) { + slave.butt = jsEither([1, 1, 1, 1, 2, 2, 2]); + } else if (slave.physicalAge <= 14) { + slave.butt = jsEither([1, 1, 1, 2, 2, 2, 3]); + } else if (slave.physicalAge <= 15) { + slave.butt = jsEither([1, 1, 2, 2, 2, 2, 3]); + } else { + switch (slave.race) { + case "black": + slave.butt = jsEither([1, 2, 2, 3, 3, 4, 4]); + break; + case "indo-aryan": + case "malay": + case "pacific islander": + case "amerindian": + case "asian": + case "middle eastern": + case "semitic": + case "southern european": + slave.butt = jsEither([1, 2, 2, 3, 3]); + break; + default: + slave.butt = jsEither([1, 2, 2, 3, 3, 4]); + } + } + if (V.weightAffectsAssets != 0) { + if (slave.weight < -10 && slave.butt > 1) { + slave.butt -= 1; + } else if (slave.weight > 100 && slave.butt < 6) { + slave.butt += jsRandom(1,2); + } else if (slave.weight > 10 && slave.butt < 4) { + slave.butt += 1; + } + } + slave.anus = jsEither([0, 0, 1, 1, 2]); + slave.analArea = slave.anus + jsEither([0, 0, 0, 1]); + }; + + function generateXYButt() { + if (slave.physicalAge <= 13) { + slave.butt = jsEither([1, 1, 1, 2, 2, 3, 3, 4]); + } else { + slave.butt = jsEither([1, 1, 2, 3]); + } + if (V.weightAffectsAssets != 0) { + if (slave.weight < -10 && slave.butt > 1) { + slave.butt -= 1; + } else if (slave.weight > 100 && slave.butt < 6) { + slave.butt += jsRandom(1,2); + } else if (slave.weight > 10 && slave.butt < 4) { + slave.butt += 1; + } + } + if (slave.attrXY > 0) { + slave.anus = jsEither([0, 1, 2]); + } else { + if (slave.physicalAge <= 13) { + slave.anus = jsEither([0, 0, 0, 0, 0, 1]); + } else if (slave.physicalAge <= 15) { + slave.anus = jsEither([0, 0, 0, 0, 1, 1, 1]); + } else if (slave.physicalAge <= 17) { + slave.anus = jsEither([0, 0, 0, 1, 1, 1]); + } else { + slave.anus = jsEither([0, 0, 1, 1, 2]); + } + } + slave.analArea = slave.anus + jsEither([0, 0, 0, 1]); + }; + + function generateXXBoobs() { + if (slave.physicalAge <= 10) { + slave.boobs = 100; + } else if (slave.physicalAge == 11) { + slave.boobs = jsEither([100, 100, 150, 150, 150, 300]); + } else if (slave.physicalAge == 12) { + slave.boobs = jsEither([100, 100, 150, 150, 150, 200, 200, 300]); + } else if (slave.physicalAge == 13) { + slave.boobs = jsEither([100, 150, 200, 200, 300, 300, 300, 400]); + } else if (slave.physicalAge == 14) { + slave.boobs = jsEither([100, 150, 200, 300, 300, 300, 350, 400, 400]); + } else if (slave.physicalAge == 15) { + slave.boobs = jsEither([150, 200, 300, 300, 300, 350, 350, 350, 400, 400, 450, 450]); + } else { + switch (slave.race) { + case "black": + slave.boobs = BoobGenerator.rollBreast(150); + break; + case "white": + slave.boobs = BoobGenerator.rollBreast(50); + break; + case "asian": + slave.boobs = BoobGenerator.rollBreast(-100); + break; + default: + slave.boobs = BoobGenerator.rollBreast(0); + } + } + }; + + function generateXYBoobs() { + slave.boobs = jsEither([100, 200, 200, 300, 300, 400, 500]); + }; + + function generateXXFace() { + slave.face = jsRandom(-60,60); + if (jsRandom(0,2) == 0) { + slave.face = jsRandom(-10,10); + } + if (slave.physicalAge > 40) { + slave.face -= jsRandom(0,20); + } else if (slave.physicalAge > 35) { + slave.face -= jsRandom(0,10); + } else if (slave.physicalAge <= 20) { + slave.face += jsRandom(0,20); + } else if (slave.physicalAge <= 25) { + slave.face += jsRandom(0,10); + } + if (slave.physicalAge > 10) { + slave.faceShape = jsEither(["androgynous", "cute", "sensual", "exotic", "normal", "normal"]); + } else { + slave.faceShape = jsEither(["androgynous", "androgynous", "cute", "cute", "sensual", "exotic", "normal", "normal"]); + } + switch (slave.faceShape) { + case "sensual": + case "cute": + slave.face += jsRandom(0,20); + break; + case "exotic": + case "androgynous": + slave.face += jsRandom(-10,10); + break; + case "masculine": + slave.face += jsRandom(-10,0); + } + }; + + function generateXYFace() { + slave.face = jsRandom(-70,20); + if (jsRandom(0,2) == 0) { + slave.face = jsRandom(-40,-10); + } + if (slave.physicalAge > 40) { + slave.face -= jsRandom(0,20); + } else if (slave.physicalAge > 35) { + slave.face -= jsRandom(0,10); + } else if (slave.physicalAge <= 20) { + slave.face += jsRandom(0,20); + } else if (slave.physicalAge <= 25) { + slave.face += jsRandom(0,10); + } + if (slave.physicalAge >= 17) { + slave.faceShape = jsEither(["masculine", "masculine", "masculine", "androgynous"]); + } else if (slave.physicalAge >= 15) { + slave.faceShape = jsEither(["masculine", "masculine", "masculine", "masculine", "masculine", "masculine", "masculine", "masculine", "androgynous", "sensual", "exotic", "normal"]); + } else if (slave.physicalAge >= 13) { + slave.faceShape = jsEither(["masculine", "masculine", "masculine", "androgynous", "cute", "sensual", "exotic", "normal"]); + } else if (slave.physicalAge >= 11) { + slave.faceShape = jsEither(["masculine", "androgynous", "cute", "sensual", "exotic", "normal", "normal"]); + } else { + slave.faceShape = jsEither(["androgynous", "androgynous", "cute", "cute", "sensual", "exotic", "normal", "normal"]); + } + switch (slave.faceShape) { + case "sensual": + case "cute": + slave.face += jsRandom(0,20); + break; + case "exotic": + case "androgynous": + slave.face += jsRandom(-10,10); + break; + case "masculine": + slave.face += jsRandom(-10,0); + } + }; + + function generateXXPregAdaptation() { + if (slave.physicalAge <= 6) { + slave.pregAdaptation = 5; + } else if (slave.physicalAge <= 11) { + slave.pregAdaptation = slave.physicalAge - 1; + } else if (slave.physicalAge <= 14) { + slave.pregAdaptation = 4*(slave.physicalAge - 12) + 14; + } else if (slave.physicalAge <= 15) { + slave.pregAdaptation = 28; + } else if (slave.physicalAge <= 16) { + slave.pregAdaptation = 34; + } else if (slave.physicalAge <= 17) { + slave.pregAdaptation = 42; + } else { + slave.pregAdaptation = 50; + } + }; + + function generateXYPregAdaptation() { + if (slave.physicalAge <= 6) { + slave.pregAdaptation = 5; + } else if (slave.physicalAge <= 11) { + slave.pregAdaptation = slave.physicalAge - 1; + } else if (slave.physicalAge <= 15) { + slave.pregAdaptation = 2*(slave.physicalAge - 12) + 12; + } else { + slave.pregAdaptation = 20; + } + }; + + function generateXXVoice() { + if (slave.physicalAge <= 13) { + slave.voice = jsEither([2, 2, 2, 3, 3, 3, 3, 3, 3]); + } else if (slave.physicalAge <= 16) { + slave.voice = jsEither([2, 2, 2, 2, 2, 3, 3, 3, 3]); + } else { + slave.voice = jsEither([1, 2, 2, 2, 2, 2, 2, 3, 3, 3]); + } + }; + + function generateXYVoice() { + if (slave.physicalAge <= 11) { + slave.voice = jsEither([2, 2, 2, 3, 3, 3, 3, 3, 3]); + } else if (slave.physicalAge <= 13) { + slave.voice = jsEither([1, 1, 2, 2, 2, 2, 2, 3, 3]); + } else if (slave.physicalAge <= 16) { + slave.voice = jsEither([1, 1, 1, 2, 2, 2, 2, 2, 3]); + } else { + if (slave.balls > 2) { + slave.voice = 1; + } else if (slave.balls > 0) { + slave.voice = jsEither([1, 1, 2]); + } else { + slave.voice = jsEither([1, 2, 2]); + } + } + }; + + function generateXXTeeth() { + var femaleCrookedTeethGen = slave.intelligence+slave.intelligenceImplant; + if ("American" == slave.nationality) { + femaleCrookedTeethGen += 20; + } else if (["Andorran", "Antiguan", "Argentinian", "Aruban", "Australian", "Austrian", "Bahamian", "Bahraini", "Barbadian", "Belarusian", "Belgian", "Bermudian", "Brazilian", "British", "Bruneian", "Bulgarian", "Canadian", "Catalan", "Chilean", "a Cook Islander", "Croatian", "Czech", "Cypriot", "Danish", "Dutch", "Emirati", "Estonian", "Finnish", "French", "German", "Greek", "Greenlandic", "Guamanian", "Hungarian", "Icelandic", "Irish", "Israeli", "Italian", "Japanese", "Kazakh", "Korean", "Kuwaiti", "Latvian", "a Liechtensteiner", "Lithuanian", "Luxembourgian", "Malaysian", "Maltese", "Mauritian", "Monégasque", "Montenegrin", "New Caledonian", "a New Zealander", "Niuean", "Norwegian", "Omani", "Palauan", "Panamanian", "Polish", "Portuguese", "Puerto Rican", "Qatari", "Romanian", "Russian", "Sammarinese", "Saudi", "Seychellois", "Singaporean", "Slovak", "Slovene", "Spanish", "Swedish", "Swiss", "Taiwanese", "Trinidadian", "Uruguayan", "Vatican"].includes(slave.nationality)) { + /* do nothing */ + } else { + femaleCrookedTeethGen -= 20; + } + + if (jsRandom(0, femaleCrookedTeethGen) <= 15 && slave.physicalAge >= 12) { + slave.teeth = "crooked"; + } + + if (slave.physicalAge < 6) { + slave.teeth = "baby"; + } else if (slave.physicalAge < 12) { + slave.teeth = "mixed"; + } + }; + + function generateXYTeeth() { + var maleCrookedTeethGen = slave.intelligence+slave.intelligenceImplant; + if ("American" == slave.nationality) { + maleCrookedTeethGen += 22; + } else if (["Andorran", "Antiguan", "Argentinian", "Aruban", "Australian", "Austrian", "Bahamian", "Bahraini", "Barbadian", "Belarusian", "Belgian", "Bermudian", "Brazilian", "British", "Bruneian", "Bulgarian", "Canadian", "Catalan", "Chilean", "a Cook Islander", "Croatian", "Czech", "Cypriot", "Danish", "Dutch", "Emirati", "Estonian", "Finnish", "French", "German", "Greek", "Greenlandic", "Guamanian", "Hungarian", "Icelandic", "Irish", "Israeli", "Italian", "Japanese", "Kazakh", "Korean", "Kuwaiti", "Latvian", "a Liechtensteiner", "Lithuanian", "Luxembourgian", "Malaysian", "Maltese", "Mauritian", "Monégasque", "Montenegrin", "New Caledonian", "a New Zealander", "Niuean", "Norwegian", "Omani", "Palauan", "Panamanian", "Polish", "Portuguese", "Puerto Rican", "Qatari", "Romanian", "Russian", "Sammarinese", "Saudi", "Seychellois", "Singaporean", "Slovak", "Slovene", "Spanish", "Swedish", "Swiss", "Taiwanese", "Trinidadian", "Uruguayan", "Vatican"].includes(slave.nationality)) { + /* do nothing */ + } else { + maleCrookedTeethGen -= 20; + } + + if (jsRandom(0, maleCrookedTeethGen) <= 15 && slave.physicalAge >= 12) { + slave.teeth = "crooked"; + } + + if (slave.physicalAge < 6) { + slave.teeth = "baby"; + } else if (slave.physicalAge < 12) { + slave.teeth = "mixed"; + } + }; + + function generateXXMods() { + if (passage() != "Starting Girls") { + slave.earPiercing = jsEither([0,1]); + slave.nosePiercing = jsEither([0,0,0,1]); + slave.eyebrowPiercing = jsEither([0,0,0,0,0,1]); + slave.clitPiercing = jsEither([0,0,0,0,0,1]); + slave.lipsPiercing = jsEither([0,0,0,0,0,1]); + slave.navelPiercing = jsEither([0,0,0,1]); + slave.nipplesPiercing = jsEither([0,0,0,0,1]); + } + if (slave.anus != 0 && Math.random() < 0.25) { + slave.anusTat = "bleached"; + } + }; + + function generateXYMods() { + if (passage() != "Starting Girls") { + slave.earPiercing = jsEither([0,0,0,1]); + slave.nosePiercing = jsEither([0,0,0,0,1]); + slave.eyebrowPiercing = jsEither([0,0,0,0,0,1]); + slave.clitPiercing = jsEither([0,0,0,0,0,1]); + slave.lipsPiercing = jsEither([0,0,0,0,0,1]); + slave.navelPiercing = jsEither([0,0,0,0,1]); + slave.nipplesPiercing = jsEither([0,0,0,0,1]); + } + if (slave.anus != 0 && Math.random() < 0.25) { + slave.anusTat = "bleached"; + } + }; + + function generateXXBodyHair() { + slave.pubicHColor = slave.hColor; + slave.underArmHColor = slave.hColor; + slave.pubicHStyle = jsEither(["hairless", "bald", "bald", "waxed", "waxed", "waxed", "waxed", "waxed", "waxed", "in a strip", "in a strip", "in a strip", "in a strip", "in a strip", "neat", "neat", "neat", "neat", "neat", "bushy in the front and neat in the rear", "bushy in the front and neat in the rear", "bushy in the front and neat in the rear", "bushy in the front and neat in the rear", "bushy", "bushy", "bushy", "bushy", "bushy", "very bushy", "very bushy"]); + slave.underArmHStyle = jsEither(["hairless", "bald", "bald", "waxed", "waxed", "waxed", "waxed", "shaved", "shaved", "shaved", "shaved", "shaved", "neat", "neat", "neat", "neat", "neat", "bushy", "bushy", "bushy"]); + if ((slave.pubicHStyle == "hairless" || slave.underArmHStyle == "hairless") && Math.random() > 0.4) { + slave.pubicHStyle = "hairless"; + slave.underArmHStyle = "hairless"; + } + if (slave.hColor == "blonde" && Math.random() > 0.85) { + slave.eyebrowHColor = jsEither(["brown", "brown", "brown", "brown", "black"]); + slave.override_Brow_H_Color = 1; + } else { + slave.eyebrowHColor = slave.hColor; + } + slave.eyebrowHStyle = jsEither(["bald", "shaved", "shaved", "straight", "straight", "straight", "straight", "straight", "straight", "rounded", "rounded", "rounded", "rounded", "rounded", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "slanted inwards", "slanted inwards", "slanted outwards", "slanted outwards", "high-arched", "high-arched", "high-arched", "elongated", "elongated", "elongated", "shortened", "shortened", "shortened", "curved", "curved", "curved", "curved", "curved", "curved", "curved"]); + slave.eyebrowFullness = jsEither(["pencil-thin", "pencil-thin", "thin", "thin", "thin", "threaded", "threaded", "threaded", "threaded", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "tapered", "tapered", "tapered", "tapered", "thick", "thick", "thick", "bushy", "bushy"]); + }; + + function generateXYBodyHair() { + slave.pubicHColor = slave.hColor; + slave.underArmHColor = slave.hColor; + slave.pubicHStyle = jsEither(["hairless", "bald", "bald", "waxed", "waxed", "waxed", "waxed", "waxed", "waxed", "in a strip", "in a strip", "in a strip", "neat", "neat", "neat", "neat", "neat", "neat", "bushy in the front and neat in the rear", "bushy in the front and neat in the rear", "bushy in the front and neat in the rear", "bushy", "bushy", "bushy", "bushy", "bushy", "bushy", "very bushy", "very bushy"]); + slave.underArmHStyle = jsEither(["hairless", "bald", "bald", "waxed", "waxed", "waxed", "waxed", "shaved", "shaved", "shaved", "shaved", "shaved", "neat", "neat", "neat", "neat", "neat", "neat", "neat", "bushy", "bushy", "bushy", "bushy", "bushy"]); + if ((slave.pubicHStyle == "hairless" || slave.underArmHStyle == "hairless") && Math.random() > 0.4) { + slave.pubicHStyle = "hairless"; + slave.underArmHStyle = "hairless"; + } + if (slave.hColor == "blonde" && Math.random() > 0.85) { + slave.eyebrowHColor = jsEither(["brown", "brown", "brown", "brown", "black"]); + slave.override_Brow_H_Color = 1; + } else { + slave.eyebrowHColor = slave.hColor; + } + slave.eyebrowHStyle = jsEither(["bald", "shaved", "shaved", "straight", "straight", "straight", "straight", "straight", "straight", "rounded", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "slanted inwards", "slanted outwards", "high-arched", "elongated", "shortened", "curved", "curved", "curved", "curved", "curved"]); + slave.eyebrowFullness = jsEither(["pencil-thin", "thin", "thin", "threaded", "threaded", "threaded", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "tapered", "tapered", "tapered", "thick", "thick", "bushy"]); + }; + + function generateXXPuberty() { + if (slave.physicalAge >= slave.pubertyAgeXX) { + slave.pubertyXX = 1; + } else { + slave.pubertyXX = 0; + } + } + + function generateXYPuberty() { + if (slave.balls > 0) { + if (slave.physicalAge >= slave.pubertyAgeXY) { + slave.pubertyXY = 1; + } else { + slave.pubertyXY = 0; + } + } else { + slave.pubertyXY = 0; + } + }; + + function generateAge() { + if (V.activeSlaveOneTimeMaxAge > 998) { + V.activeSlaveOneTimeMaxAge = (V.pedo_mode === 1) ? 18 : 42; + } else if (V.pedo_mode === 1 && V.one_time_age_overrides_pedo_mode === 0 && V.activeSlaveOneTimeMaxAge > 18) { + V.activeSlaveOneTimeMaxAge = 18; + } + if (V.retirementAge < V.activeSlaveOneTimeMaxAge) { + V.activeSlaveOneTimeMaxAge = (V.retirementAge - 1); + } + if (V.activeSlaveOneTimeMinAge < V.minimumSlaveAge) { + V.activeSlaveOneTimeMinAge = V.minimumSlaveAge; + } else if (V.pedo_mode === 1 && V.one_time_age_overrides_pedo_mode === 0) { + V.activeSlaveOneTimeMinAge = V.minimumSlaveAge; + } + if (V.activeSlaveOneTimeMaxAge < V.activeSlaveOneTimeMinAge) { + V.activeSlaveOneTimeMaxAge = V.activeSlaveOneTimeMinAge; + } + if (V.activeSlaveOneTimeMaxAge >= 30 && V.arcologies[0].FSMaturityPreferentialist !== "unset" && V.ageAdjustOverride !== 1) { + V.activeSlaveOneTimeMaxAge += 10; + } + slave.actualAge = jsRandom(V.activeSlaveOneTimeMinAge, V.activeSlaveOneTimeMaxAge); + const secondAgeRoll = jsRandom(V.activeSlaveOneTimeMinAge, V.activeSlaveOneTimeMaxAge); + if (V.arcologies[0].FSYouthPreferentialist !== "unset" && V.arcologies[0].FSYouthPreferentialist >= jsRandom(1, 100)) { + slave.actualAge = Math.min(slave.actualAge, secondAgeRoll); + } else if (V.arcologies[0].FSMaturityPreferentialist !== "unset" && V.arcologies[0].FSMaturityPreferentialist >= jsRandom(1, 100)) { + slave.actualAge = Math.max(slave.actualAge, secondAgeRoll); + } + if (slave.actualAge >= V.retirementAge) { + slave.actualAge = (V.retirementAge - 2); + } + V.activeSlaveOneTimeMinAge = 0; + V.activeSlaveOneTimeMaxAge = 999; + V.one_time_age_overrides_pedo_mode = 0; + V.ageAdjustOverride = 0; + slave.visualAge = slave.actualAge; + slave.physicalAge = slave.actualAge; + slave.ovaryAge = slave.actualAge; + slave.age = slave.actualAge; /*compatibility*/ + slave.pubertyAgeXX = V.fertilityAge; + slave.pubertyAgeXY = V.potencyAge; + }; + + function generateIntelligence() { + const gaussian = gaussianPair(); + slave.intelligence = Intelligence.random(); + if (V.AgePenalty == 1 && slave.actualAge <= 24) { + if (gaussian[0] < gaussian[1] + slave.intelligence/29 + (slave.actualAge - 24)/8 - 0.35) { + slave.intelligenceImplant = 15; + if (slave.intelligenceImplant > 0 && jsRandom(15,150) < slave.intelligence) { + slave.intelligenceImplant = 30; + } + } + } else { + if (gaussian[0] < gaussian[1] + slave.intelligence/29 - 0.35) { /* 40.23% chance if intelligence is 0, 99.26% chance if intelligence is 100 */ + slave.intelligenceImplant = 15; + if (slave.intelligenceImplant > 0 && jsRandom(15,150) < slave.intelligence) { + slave.intelligenceImplant = 30; + } + } + } + }; + + function generateCareer() { + if (V.AgePenalty == 1) { + if (slave.actualAge < 16) { + slave.career = setup.veryYoungCareers.random(); + } else if (slave.actualAge <= 24) { + slave.career = setup.youngCareers.random(); + } else if (slave.intelligenceImplant >= 15) { + slave.career = setup.educatedCareers.random(); + } else { + slave.career = setup.uneducatedCareers.random(); + } + } else { + if (slave.actualAge < 16) { + slave.career = setup.veryYoungCareers.random(); + } else if (slave.intelligenceImplant >= 15) { + slave.career = setup.educatedCareers.random(); + } else if (slave.actualAge <= 24) { + slave.career = setup.youngCareers.random(); + } else { + slave.career = setup.uneducatedCareers.random(); + } + } + }; + + function generateNationality() { + if (V.fixedRace == 0) { + if (V.fixedNationality == 0) { + slave.nationality = hashChoice(V.nationalities); + } else { + slave.nationality = V.fixedNationality; + V.fixedNationality = 0; + } + nationalityToRace(slave); + + if (passage() == "Corporate Market" && (V.captureUpgradeRace != "unselected") && (V.captureUpgradeRace != "none")) { + if (V.captureUpgradeRace == "mixed race") { + slave.race = "mixed race"; + } else { + const capUpgradeCheck = setup[V.captureUpgradeRace.toLowerCase().replace(/[ -]/g, '')+'Nationalities']; + const keys = Object.keys(capUpgradeCheck); + var capUpgradeNationalities = {}; + for (var i = 0; i < keys.length; i++) { + if (keys[i] in V.nationalities) { + capUpgradeNationalities[keys[i]] = capUpgradeCheck[keys[i]]; + } + } + if (Object.keys(capUpgradeNationalities).length > 0) { + slave.nationality = hashChoice(capUpgradeNationalities); + } else { + slave.nationality = hashChoice(capUpgradeCheck); + } + slave.race = V.captureUpgradeRace; + } + } + + } else { + switch (V.fixedRace) { + case "white": + slave.nationality = hashChoice(setup.whiteNationalities); + break; + case "asian": + slave.nationality = hashChoice(setup.asianNationalities); + break; + case "latina": + slave.nationality = hashChoice(setup.latinaNationalities); + break; + case "black": + slave.nationality = hashChoice(setup.blackNationalities); + break; + case "pacific islander": + slave.nationality = hashChoice(setup.pacificislanderNationalities); + break; + case "southern european": + slave.nationality = hashChoice(setup.southerneuropeanNationalities); + break; + case "amerindian": + slave.nationality = hashChoice(setup.amerindianNationalities); + break; + case "semitic": + slave.nationality = hashChoice(setup.semiticNationalities); + break; + case "middle eastern": + slave.nationality = hashChoice(setup.middleeasternNationalities); + break; + case "indo-aryan": + slave.nationality = hashChoice(setup.indoaryanNationalities); + break; + case "malay": + slave.nationality = hashChoice(setup.malayNationalities); + break; + default: + slave.nationality = hashChoice(V.nationalities); + } + slave.race = V.fixedRace; + V.fixedRace = 0; + } + }; + + function generateAccent() { + nationalityToAccent(slave); + if ((slave.intelligenceImplant >= 15 || slave.intelligence > 95) && slave.accent >= 3 && slave.intelligence > jsRandom(0,100)) { + slave.accent -= 1; + } + }; + + function generateRacialTraits() { + switch (slave.race) { + case "black": + slave.lips = jsRandom(5,30); + slave.skin = jsEither(["black", "dark brown", "brown"]); + slave.hColor = jsEither(["black", "black", "black", "brown"]); + slave.hStyle = jsEither(["neat", "crinkled"]); + break; + case "white": + slave.lips = jsRandom(5,25); + if (slave.nationality == "German") { + slave.skin = jsEither(["pale", "light", "fair"]); + slave.eyeColor = jsEither(["blue", "blue", "blue", "brown", "green"]); + slave.hColor = jsEither(["black", "blonde", "blonde", "blonde", "red", "brown"]); + } else if (slave.nationality == "Icelandic") { + slave.skin = jsEither(["pale", "pale", "light", "fair"]); + slave.eyeColor = jsEither(["blue", "blue", "blue", "brown", "green"]); + slave.hColor = jsEither(["black", "blonde", "blonde", "blonde", "red", "brown"]); + } else if (slave.nationality == "Irish") { + slave.skin = jsEither(["pale", "pale", "light", "fair"]); + slave.eyeColor = jsEither(["blue", "brown", "green", "green", "green"]); + slave.hColor = jsEither(["black", "blonde", "red", "red", "red", "brown"]); + } else if (slave.nationality == "Scottish") { + slave.skin = jsEither(["pale", "fair", "light", "fair"]); + slave.eyeColor = jsEither(["blue", "brown", "brown", "green", "green", "green"]); + slave.hColor = jsEither(["black", "black", "blonde", "red", "red", "red", "brown"]); + } else { + slave.skin = jsEither(["pale", "light", "fair"]); + slave.eyeColor = jsEither(["blue", "brown", "green"]); + slave.hColor = jsEither(["black", "blonde", "red", "brown"]); + } + slave.hStyle = "neat"; + break; + case "latina": + slave.lips = jsRandom(5,25); + slave.skin = jsEither(["light olive", "brown", "dark brown", "tanned", "dark olive"]); + slave.hColor = jsEither(["black", "brown"]); + slave.hStyle = "neat"; + break; + case "indo-aryan": + case "malay": + case "pacific islander": + case "amerindian": + slave.lips = jsRandom(5,25); + slave.skin = jsEither(["dark", "light"]); + slave.hColor = "black"; + slave.hStyle = "neat"; + break; + case "asian": + slave.lips = jsRandom(5,25); + slave.skin = jsEither(["light olive", "dark olive", "light"]); + slave.hColor = "black"; + slave.hStyle = "neat"; + break; + case "middle eastern": + case "semitic": + case "southern european": + slave.lips = jsRandom(5,25); + slave.skin = jsEither(["fair", "light olive", "tanned", "light"]); + slave.hColor = "black"; + slave.hStyle = "neat"; + break; + default: + slave.lips = jsRandom(5,25); + slave.skin = jsEither(["pale", "dark", "light"]); + slave.hColor = jsEither(["black", "black", "black", "black", "brown", "brown", "blonde", "red"]); + slave.hStyle = "neat"; + } + if (slave.skin == "pale" || slave.skin == "fair") { + if (jsRandom(1,4) == 1) { + slave.markings = jsEither(["freckles", "freckles", "freckles", "heavily freckled", "beauty mark", "beauty mark", "birthmark", "birthmark"]); + } + } else if (jsRandom(1,8) == 1) { + slave.markings = jsEither(["beauty mark", "birthmark"]); + } + }; + + function generateBoobTweaks() { + if (V.weightAffectsAssets != 0) { + if (slave.weight < -10 && slave.boobs > 200) { + slave.boobs -= 100; + } else if (slave.weight > 190 && slave.boobs < 3000) { + slave.boobs += (jsRandom(3,8)*100); + } else if (slave.weight > 160 && slave.boobs < 1500) { + slave.boobs += (jsRandom(2,6)*100); + } else if (slave.weight > 130 && slave.boobs < 1500) { + slave.boobs += (jsRandom(1,4)*100); + } else if (slave.weight > 95 && slave.boobs < 1200) { + slave.boobs += (jsRandom(1,3)*100); + } else if (slave.weight > 30 && slave.boobs < 1000) { + slave.boobs += 100; + } + } + + var BoobShapeGen = []; + if (slave.boobs > 250 && slave.boobs < 800) { + BoobShapeGen.push("perky"); + BoobShapeGen.push("downward-facing"); + } + if (slave.boobs > 400 && slave.boobs < 1200) { + BoobShapeGen.push("torpedo-shaped"); + BoobShapeGen.push("wide-set"); + } + if (slave.boobs > 800 && slave.physicalAge > jsRandom(10,50)) { + BoobShapeGen.push("saggy"); + } + if (BoobShapeGen.length == 1) { + if (Math.random() < 0.5) { + slave.boobShape = jsEither(BoobShapeGen); + } + } else if (BoobShapeGen.length > 1) { + if (jsRandom(1,3) != 1) { + slave.boobShape = jsEither(BoobShapeGen); + } + } + + if (slave.boobs < 250) { + slave.nipples = jsEither(["tiny", "tiny", "tiny", "tiny", "cute", "cute", "puffy", "partially inverted"]); + } else if (slave.boobs < 500) { + slave.nipples = jsEither(["tiny", "cute", "cute", "cute", "puffy", "partially inverted"]); + } else if (slave.boobs < 1000) { + slave.nipples = jsEither(["tiny", "cute", "cute", "cute", "puffy", "puffy", "partially inverted", "inverted"]); + } else { + slave.nipples = jsEither(["cute", "puffy", "partially inverted", "inverted", "huge"]); + } + }; + + function generateSkills() { + slave.vaginalSkill = (slave.vagina == 0 ? 0 : jsRandom(0,15)); + slave.analSkill = (slave.anus == 0 ? 0 : jsRandom(0,15)); + slave.oralSkill = jsRandom(0,15); + slave.entertainSkill = jsRandom(0,15); + slave.whoreSkill = jsRandom(0,15); + }; + + function generateDisabilities() { + if (slave.physicalAge >= jsRandom(0,100)) { + slave.eyes = -1; + } + if (slave.physicalAge >= jsRandom(30,100)) { + slave.hears = -1; + } + if (V.seeExtreme == 1) { + let disList = []; + disList.push("hearNot"); + disList.push("seeNot"); + disList.push("speakNot"); + let disableCount = 0; + if (V.oneTimeDisableDisability === 0) { + while (disList.length > 0) { + let rolled = jsEither(disList); + switch (rolled) { + case "hearNot": + if ((jsRandom(1,100)-(disableCount*2)) > 90) { + slave.hears = -2; + } + disList.delete("hearNot"); + disableCount++; + break; + case "seeNot": + if ((jsRandom(1,100)-(disableCount*2)) > 90) { + slave.eyes = -2; + } + disList.delete("seeNot"); + disableCount++; + break; + case "speakNot": + if ((jsRandom(1,100)-(disableCount*2)) > 90) { + slave.voice = 0; + } + disList.delete("speakNot"); + disableCount++; + break; + } + } + } + V.oneTimeDisableDisability = 0; + } + }; + + return GenerateNewSlave; +})(); diff --git a/src/js/rulesAssistantOptions.tw b/src/js/rulesAssistantOptions.tw index 4f591d931730e5836d1017a1974cd81eb95a3647..3b4088d49f467dcecca7f0bdca3954a688edbbe2 100644 --- a/src/js/rulesAssistantOptions.tw +++ b/src/js/rulesAssistantOptions.tw @@ -522,6 +522,7 @@ window.rulesAssistantOptions = (function() { ["Devotion", "devotion"], ["Trust", "trust"], ["Health", "health"], + ["Sex", "genes"], ["Sex drive", "energy"], ["Height", "height"], ["Weight", "weight"], @@ -591,6 +592,7 @@ window.rulesAssistantOptions = (function() { return [ "fetish", "amp", + "genes", ].includes(attribute); } @@ -756,6 +758,7 @@ window.rulesAssistantOptions = (function() { return "Insert a valid JSON array. Known values: " + { "fetish": "buttslut, cumslut, masochist, sadist, dom, submissive, boobs, pregnancy, none (AKA vanilla)", "amp": "Amputated: 1, Not amputated: 0", + "genes": "XX, XY", }[attribute]; } diff --git a/src/js/slaveGenerationJS.tw b/src/js/slaveGenerationJS.tw index 34ca0c6415a616b9c1ef84dd05e7397b601d3c08..4951b7b74e0a05363020ef72deff68a10e60ad8d 100644 --- a/src/js/slaveGenerationJS.tw +++ b/src/js/slaveGenerationJS.tw @@ -1,49 +1,5 @@ :: Slave Generation JS [script] -window.generateAge = function generateAge(slave) { - const V = State.variables; - - if (V.activeSlaveOneTimeMaxAge > 998) { - V.activeSlaveOneTimeMaxAge = (V.pedo_mode === 1) ? 18 : 42; - } else if (V.pedo_mode === 1 && V.one_time_age_overrides_pedo_mode === 0 && V.activeSlaveOneTimeMaxAge > 18) { - V.activeSlaveOneTimeMaxAge = 18; - } - if (V.retirementAge < V.activeSlaveOneTimeMaxAge) { - V.activeSlaveOneTimeMaxAge = (V.retirementAge - 1); - } - if (V.activeSlaveOneTimeMinAge < V.minimumSlaveAge) { - V.activeSlaveOneTimeMinAge = V.minimumSlaveAge; - } else if (V.pedo_mode === 1 && V.one_time_age_overrides_pedo_mode === 0) { - V.activeSlaveOneTimeMinAge = V.minimumSlaveAge; - } - if (V.activeSlaveOneTimeMaxAge < V.activeSlaveOneTimeMinAge) { - V.activeSlaveOneTimeMaxAge = V.activeSlaveOneTimeMinAge; - } - if (V.activeSlaveOneTimeMaxAge >= 30 && V.arcologies[0].FSMaturityPreferentialist !== "unset" && V.ageAdjustOverride !== 1) { - V.activeSlaveOneTimeMaxAge += 10; - } - slave.actualAge = jsRandom(V.activeSlaveOneTimeMinAge, V.activeSlaveOneTimeMaxAge); - const secondAgeRoll = jsRandom(V.activeSlaveOneTimeMinAge, V.activeSlaveOneTimeMaxAge); - if (V.arcologies[0].FSYouthPreferentialist !== "unset" && V.arcologies[0].FSYouthPreferentialist >= jsRandom(1, 100)) { - slave.actualAge = Math.min(slave.actualAge, secondAgeRoll); - } else if (V.arcologies[0].FSMaturityPreferentialist !== "unset" && V.arcologies[0].FSMaturityPreferentialist >= jsRandom(1, 100)) { - slave.actualAge = Math.max(slave.actualAge, secondAgeRoll); - } - if (slave.actualAge >= V.retirementAge) { - slave.actualAge = (V.retirementAge - 2); - } - V.activeSlaveOneTimeMinAge = 0; - V.activeSlaveOneTimeMaxAge = 999; - V.one_time_age_overrides_pedo_mode = 0; - V.ageAdjustOverride = 0; - slave.visualAge = slave.actualAge; - slave.physicalAge = slave.actualAge; - slave.ovaryAge = slave.actualAge; - slave.age = slave.actualAge; /*compatibility*/ - slave.pubertyAgeXX = V.fertilityAge; - slave.pubertyAgeXY = V.potencyAge; -}; - window.nationalityToRace = function nationalityToRace(slave) { slave.race = hashChoice(setup.raceSelector[slave.nationality] || setup.raceSelector[""]); }; @@ -1298,40 +1254,382 @@ window.randomizeAttraction = function randomizeAttraction(slave) { slave.attrXY = Math.clamp(slave.attrXY + jsRandom(-5, 5), 0, 100); }; -window.disabilityRoll = function disabilityRoll(slave) { - const V = State.variables; - let disList = []; - disList.push("hearNot"); - disList.push("seeNot"); - disList.push("speakNot"); - let disableCount = 0; - if (V.oneTimeDisableDisability === 0) { - while (disList.length > 0) { - let rolled = jsEither(disList); - switch (rolled) { - case "hearNot": - if ((jsRandom(1,100)-(disableCount*2)) > 90) { - slave.hears = -2; - } - disList.delete("hearNot"); - disableCount++; - break; - case "seeNot": - if ((jsRandom(1,100)-(disableCount*2)) > 90) { - slave.eyes = -2; - } - disList.delete("seeNot"); - disableCount++; - break; - case "speakNot": - if ((jsRandom(1,100)-(disableCount*2)) > 90) { - slave.voice = 0; - } - disList.delete("speakNot"); - disableCount++; - break; - } - } +window.BaseSlave = function BaseSlave() { + State.variables.activeSlave = { + slaveName: "blank", + slaveSurname: 0, + birthName: "blank", + birthSurname: 0, + genes: "XX", + pronoun: "she", + possessive: "her", + possessivePronoun: "hers", + objectReflexive: "herself", + object: "her", + noun: "girl", + weekAcquired: 0, + origin: 0, + career: 0, + ID: 0, + prestige: 0, + pornFeed: 0, + pornFame: 0, + pornFameSpending: 0, + pornPrestige: 0, + pornPrestigeDesc: 0, + pornFameType: "none", + pornFocus: "none", + pornTypeGeneral: 0, + pornTypeFuckdoll: 0, + pornTypeRape: 0, + pornTypePreggo: 0, + pornTypeBBW: 0, + pornTypeGainer: 0, + pornTypeStud: 0, + pornTypeLoli: 0, + pornTypeDeepThroat: 0, + pornTypeStruggleFuck: 0, + pornTypePainal: 0, + pornTypeTease: 0, + pornTypeRomantic: 0, + pornTypePervert: 0, + pornTypeCaring: 0, + pornTypeUnflinching: 0, + pornTypeSizeQueen: 0, + pornTypeNeglectful: 0, + pornTypeCumAddict: 0, + pornTypeAnalAddict: 0, + pornTypeAttentionWhore: 0, + pornTypeBreastGrowth: 0, + pornTypeAbusive: 0, + pornTypeMalicious: 0, + pornTypeSelfHating: 0, + pornTypeBreeder: 0, + pornTypeSub: 0, + pornTypeCumSlut: 0, + pornTypeAnal: 0, + pornTypeHumiliation: 0, + pornTypeBoobs: 0, + pornTypeDom: 0, + pornTypeSadist: 0, + pornTypeMasochist: 0, + pornTypePregnancy: 0, + prestigeDesc: 0, + recruiter: 0, + relation: 0, + relationTarget: 0, + relationship: 0, + relationshipTarget: 0, + rivalry: 0, + rivalryTarget: 0, + subTarget: 0, + father: 0, + mother: 0, + daughters: 0, + sisters: 0, + canRecruit: 0, + choosesOwnAssignment: 0, + assignment: "rest", + assignmentVisible: 1, + sentence: 0, + training: 0, + toyHole: "all her holes", + indenture: -1, + indentureRestrictions: 0, + birthWeek: random(0,51), + actualAge: 18, + visualAge: 18, + physicalAge: 18, + ovaryAge: 18, + ageImplant: 0, + health: 0, + minorInjury: 0, + trust: 0, + oldTrust: 0, + devotion: 0, + oldDevotion: 0, + weight: 0, + muscles: 0, + height: 170, + heightImplant: 0, + nationality: "slave", + race: "white", + origRace: "white", + markings: "none", + eyes: 1, + eyeColor: "brown", + origEye: "brown", + pupil: "circular", + sclerae: "white", + eyewear: "none", + hears: 0, + earwear: "none", + earImplant: 0, + origHColor: "brown", + hColor: "brown", + pubicHColor: "brown", + underArmHColor: "brown", + eyebrowHColor: "brown", + origSkin: "light", + skin: "light", + hLength: 60, + eyebrowFullness: "natural", + hStyle: "short", + pubicHStyle: "neat", + underArmHStyle: "neat", + eyebrowHStyle: "natural", + waist: 0, + corsetPiercing: 0, + PLimb: 0, + amp: 0, + heels:0, + voice: 2, + voiceImplant: 0, + accent: 0, + shoulders: 0, + shouldersImplant: 0, + boobs: 0, + boobsImplant: 0, + boobsImplantType: 0, + boobShape: "normal", + nipples: "cute", + nipplesPiercing: 0, + nipplesAccessory: 0, + areolae: 0, + areolaePiercing: 0, + areolaeShape: "circle", + boobsTat: 0, + lactation: 0, + lactationAdaptation: 0, + milk: 0, + cum: 0, + hips: 0, + hipsImplant: 0, + butt: 0, + buttImplant: 0, + buttImplantType: 0, + buttTat: 0, + face: 0, + faceImplant: 0, + faceShape: "normal", + lips: 15, + lipsImplant: 0, + lipsPiercing: 0, + lipsTat: 0, + teeth: "normal", + tonguePiercing: 0, + vagina: 0, + vaginaLube: 0, + vaginaPiercing: 0, + vaginaTat: 0, + preg: -1, + pregSource: 0, + pregType: 0, + pregAdaptation: 50, + superfetation: 0, + ovaImplant: 0, + broodmother: 0, + broodmotherFetuses: 0, + broodmotherOnHold: 0, + broodmotherCountDown: 0, + labor: 0, + births: 0, + cSec: 0, + bellyAccessory: "none", + labia: 0, + clit: 0, + clitPiercing: 0, + clitSetting: "vanilla", + foreskin: 0, + anus: 0, + dick: 0, + analArea: 1, + dickPiercing: 0, + dickTat: 0, + prostate: 0, + balls: 0, + scrotum: 0, + ovaries: 0, + anusPiercing: 0, + anusTat: 0, + makeup: 0, + nails: 0, + brand: 0, + brandLocation: 0, + earPiercing: 0, + nosePiercing: 0, + eyebrowPiercing: 0, + navelPiercing: 0, + shouldersTat: 0, + armsTat: 0, + legsTat: 0, + backTat: 0, + stampTat: 0, + vaginalSkill: 0, + oralSkill: 0, + analSkill: 0, + whoreSkill: 0, + entertainSkill: 0, + combatSkill: 0, + livingRules: "spare", + speechRules: "restrictive", + releaseRules: "restrictive", + relationshipRules: "restrictive", + standardPunishment: "situational", + standardReward: "situational", + useRulesAssistant: 1, + diet: "healthy", + dietCum: 0, + dietMilk: 0, + tired: 0, + hormones: 0, + drugs: "no drugs", + curatives: 0, + chem: 0, + aphrodisiacs: 0, + addict: 0, + fuckdoll: 0, + choosesOwnClothes: 0, + clothes: "no clothing", + collar: "none", + shoes: "none", + vaginalAccessory: "none", + dickAccessory: "none", + legAccessory: "none", + buttplug: "none", + buttplugAttachment: "none", + intelligence: 0, + intelligenceImplant: 0, + energy: 50, + need: 0, + attrXX: 0, + attrXY: 0, + attrKnown: 0, + fetish: "none", + fetishStrength: 70, + fetishKnown: 0, + behavioralFlaw: "none", + behavioralQuirk: "none", + sexualFlaw: "none", + sexualQuirk: "none", + oralCount: 0, + vaginalCount: 0, + analCount: 0, + mammaryCount: 0, + penetrativeCount: 0, + publicCount: 0, + pitKills: 0, + customTat: "", + customLabel: "", + customDesc: "", + customTitle: "", + customTitleLisp: "", + rudeTitle: 0, + customImage: 0, + currentRules: [], + bellyTat: 0, + induce: 0, + mpreg: 0, + inflation: 0, + inflationType: "none", + inflationMethod: 0, + milkSource: 0, + cumSource: 0, + burst: 0, + pregKnown: 0, + pregWeek: 0, + belly: 0, + bellyPreg: 0, + bellyFluid: 0, + bellyImplant: -1, + bellySag: 0, + bellySagPreg: 0, + bellyPain: 0, + cervixImplant: 0, + birthsTotal: 0, + pubertyAgeXX: 13, + pubertyAgeXY: 13, + scars: 0, + breedingMark: 0, + bodySwap: 0, + HGExclude: 0, + ballType: "human", + eggType: "human", + reservedChildren: 0, + reservedChildrenNursery: 0, + choosesOwnChastity: 0, + pregControl: "none", + readyLimbs: [], + ageAdjust: 0, + bald: 0, + origBodyOwner: "", + origBodyOwnerID: 0, + death: "", + hormoneBalance: 0, + onDiet: 0, + breastMesh: 0, + slavesFathered: 0, + PCChildrenFathered: 0, + slavesKnockedUp: 0, + PCKnockedUp: 0, + prematureBirth: 0, + premature: 0, + origSkin: "white", + vasectomy: 0, + haircuts: 0, + newGamePlus: 0, + skillHG: 0, + skillRC: 0, + skillBG: 0, + skillMD: 0, + skillDJ: 0, + skillNU: 0, + skillTE: 0, + skillAT: 0, + skillMT: 0, + skillST: 0, + skillMM: 0, + skillWA: 0, + skillS: 0, + skillE: 0, + skillW: 0, + tankBaby: 0, + inducedNCS: 0, + NCSyouthening: 0, + override_Race: 0, + override_Skin: 0, + override_Eye_Color: 0, + override_H_Color: 0, + override_Pubic_H_Color: 0, + override_Arm_H_Color: 0, + override_Brow_H_Color: 0, + missingEyes: 0, + missingArms: 0, + missingLegs: 0 + }; +}; + +window.generatePronouns = function generatePronouns(slave) { + if (slave.fuckdoll > 0) { + slave.pronoun = "it"; + slave.possessivePronoun = "its"; + slave.possessive = "its"; + slave.object = "it"; + slave.objectReflexive = "itself"; + slave.noun = "toy"; + } else if (slave.dick > 0 && slave.vagina == -1 && State.variables.diversePronouns == 1) { + slave.pronoun = "he"; + slave.possessivePronoun = "his"; + slave.possessive = "his"; + slave.object = "him"; + slave.objectReflexive = "himself"; + slave.noun = "boy"; + } else { + slave.pronoun = "she"; + slave.possessivePronoun = "hers"; + slave.possessive = "her"; + slave.object = "her"; + slave.objectReflexive = "herself"; + slave.noun = "girl"; } - V.oneTimeDisableDisability = 0; }; diff --git a/src/npc/acquisition.tw b/src/npc/acquisition.tw index 4521c5294559120d53029802b8d0326b7a9aad16..c716220f5827544ab5f7e8b3b2d48cdef73cc71e 100644 --- a/src/npc/acquisition.tw +++ b/src/npc/acquisition.tw @@ -684,8 +684,10 @@ The previous owner seems to have left in something of a hurry. <</for>> <</for>> <</if>> -<<set $averageTrust = $averageTrust/_slavesContributing>> -<<set $averageDevotion = $averageDevotion/_slavesContributing>> +<<if _slavesContributing != 0>> + <<set $averageTrust = $averageTrust/_slavesContributing>> + <<set $averageDevotion = $averageDevotion/_slavesContributing>> +<</if>> <<set $enduringTrust = $averageTrust>> <<set $enduringDevotion = $averageDevotion>> diff --git a/src/npc/descriptions/fAssistedSex.tw b/src/npc/descriptions/fAssistedSex.tw new file mode 100644 index 0000000000000000000000000000000000000000..a3ba84a6e1fea713cfddf55ceb735fcd8b3f1096 --- /dev/null +++ b/src/npc/descriptions/fAssistedSex.tw @@ -0,0 +1,97 @@ +:: FAssistedSex [nobr] + +<<run clearSummaryCache($activeSlave)>> +<<setLocalPronouns $activeSlave>> + +You order $his servants forward so that $he can tease you with $his enormously swollen body. +<<if $activeSlave.devotion > 95>> + Smirking, $he leans backwards, + <<if $activeSlave.amp < 1>> + raising $his hands above $his head + <<else>> + with two slender arms rising upward behind $him, making it look like $he has limbs once more + <</if>> + as a gaggle of $his trained menials slide underneath $his belly, lifting the monolithic organ off the ground and setting the tightly packed orb to wobbling. +<<elseif ($activeSlave.trust < -20) && ($activeSlave.devotion > -10)>> + Smiling nervously, $he leans backwards, + <<if $activeSlave.amp < 1>> + raising $his hands above $his head + <<else>> + with two slender arms rising upward behind $him, making it look like $he has limbs once more + <</if>> + as a gaggle of $his trained menials slide underneath $his belly, lifting the monolithic organ off the ground and setting the tightly packed orb to wobbling. +<<else>> + <<if $activeSlave.amp < 1>> + $he covers $his eyes with $his hands, + <<else>> + Two slender arms snake around from behind $him, almost making it look like $he has limbs once more. They cover $his quivering eyes + <</if>> + as a gaggle of $his trained menials slide underneath $his belly, lifting the monolithic organ off the ground and setting the tightly packed orb to wobbling. + <<if $activeSlave.amp < 1>> + Two more servants take hold of $his arms, forcing $him to lift them above $his head. + <<else>> + The hands covering $his eyes draw away, revealing $his crying face, then lift above $his head in a deliberately provocative pose. + <</if>> + $He tenses in a moment of instinctive resistance, then surrenders $his body to $his aids’ total control, clearly afraid of punishment. +<</if>> +You remove your clothes and lie back on the office couch, +<<if $PC.dick == 1>> + allowing your exposed, full-mast dick to loll in front of you. +<<else>> + spreading your exposed, oozing twat. +<</if>> +<<if $activeSlave.devotion > 95>> + Licking $his lips, +<<elseif ($activeSlave.trust < -20) && ($activeSlave.devotion > -10)>> + Breathing heavily, +<<else>> + Smiling fakely, +<</if>> +$he draws toward you, half-floating on a river of silent, groping hands. When $he is inches away from you, $his servants lift $him higher, and $he +<<if $PC.dick == 1>> + teases your dick with a series of masterful--and carefully balanced--belly isolations, rubbing the thick nub of $his belly button in small semicircles around your oozing cockhead as $he does so. Right when you feel ready to explode, $he rotates around, bringing + <<if $activeSlave.butt > 11>> + $his overgrown, wobbling ass cheeks + <<elseif $activeSlave.butt > 5>> + $his huge, wobbling ass cheeks + <<elseif Math.floor($activeSlave.buttImplant/$activeSlave.butt) > .60>> + $his saline inflated ass cheeks + <<elseif $activeSlave.butt > 2>> + $his wobbling ass cheeks + <<else>> + the shallow inverted bowls of $his petite ass cheeks + <</if>> + level with your erection. Two of $his servants reach around $his inflated profile and push $his cheeks together, wrapping your dick in a firm layer of butt cleavage. $He lifts $his ass, then drops it, again and again, smacking your chest on the downswing as $his servants manipulate $his hotdogging to maximize your pleasure. + <<if canDoVaginal($activeSlave)>> + When you feel the tension within you reaching its apex, you signal to $his servants to hold $him in place. With $his silent menials, still as statues, anchoring $his bloated body at the perfect angle for fucking while contorting their anonymous bodies to frame $him in a manner that maximizes $his visual attractiveness, you grab hold of $his flanks and ram into $his pregnant pussy, driving $him to the first of many orgasms in just a few casual thrusts. + <<= VaginalVCheck()>> + When you feel your own orgasm approaching, you pull out, ejaculating + <<elseif canDoAnal($activeSlave)>> + When you feel the tension within you reaching its apex, you signal to $his servants to hold $him in place. With $his silent menials, still as statues, anchoring $his bloated body at the perfect angle for fucking while contorting their anonymous bodies to frame $him in a manner that maximizes $his visual attractiveness, you grab hold of $his flanks and ram into $his asshole, driving $him to the first of many orgasms with just a few casual thrusts. + <<= AnalVCheck()>> + When you feel your own orgasm approaching, you pull out, ejaculating + <<else>> + When you feel the tension with your reaching its apex, you signal to $his servants and they pull him forward. You ejaculate + <</if>> + a thick stream of semen all over $his ass and back, $he shifts into a kneeling position on the ground in front of you, tilted sideways so that $his massive fecundity can pool on the ground beside $him, and gently sucks you off, cleaning your dick with $his mouth. + <<set $activeSlave.oralCount++, $oralTotal++>> +<<else>> + Presses the thick nub of $his belly button into your pussy, rubbing it back and forth against your engorged clit as $he performs a series of masterful--and carefully balanced--belly isolations. After $he has you quaking at the edge of release, $he rolls forward and buries $his head in your lap, plying you with $his + <<if $activeSlave.devotion > 95>> + devoted tongue + <<elseif ($activeSlave.trust < -20) && ($activeSlave.devotion > -10)>> + dedicated tongue + <<else>> + tongue + <</if>> + and driving you into a series of crashing orgasms. When $his tongue tires, $he tries to draw away, but you grab hold of $his head and hold $him in place until you are finished. + <<set $activeSlave.oralCount++, $oralTotal++>> +<</if>> +Once you are satisfied, you send $him away to clean $himself up before returning to $his duties. + +<<if passage() != "Slave Interact">> + <<set _fv = $slaveIndices[$activeSlave.ID]>> + <<if def _fv>> + <<set $slaves[_fv] = $activeSlave>> + <</if>> +<</if>> diff --git a/src/npc/descriptions/fBellyFuck.tw b/src/npc/descriptions/fBellyFuck.tw new file mode 100644 index 0000000000000000000000000000000000000000..78e4e3740762ce53ae57b440372a4f8c601d7f87 --- /dev/null +++ b/src/npc/descriptions/fBellyFuck.tw @@ -0,0 +1,98 @@ +:: FBellyFuck [nobr] + +<<run clearSummaryCache($activeSlave)>> +<<setLocalPronouns $activeSlave>> + +You have $him brought to you so that you can fuck $his hyperpregnant body. +<<if tooBigBelly($activeSlave)>> + $He is pinned to the ground by $his + <<if $activeSlave.bellyPreg >= 1000000>> + impossibly exploded baby bump, + <<elseif $activeSlave.bellyPreg >= 750000>> + massively swollen baby bump, + <<elseif $activeSlave.bellyPreg >= 600000>> + titanic baby belly, + <<else>> + massive belly, + <</if>> + and won’t be a particularly able lover because of this, but enjoying $his immobility is half the point. +<<elseif $activeSlave.amp == 1>> + $He has no limbs to stand on, so $he is left resting atop $his + <<if $activeSlave.bellyPreg >= 1000000>> + impossibly exploded baby bump. + <<elseif $activeSlave.bellyPreg >= 750000>> + massively swollen baby bump. + <<elseif $activeSlave.bellyPreg >= 600000>> + titanic baby belly. + <<else>> + massive belly. + <</if>> + $He won’t be a particularly able lover, but enjoying $his immobility is half the point. +<<elseif !canWalk($activeSlave)>> + $He can't support $himself, so $he is left leaning against $his + <<if $activeSlave.bellyPreg >= 1000000>> + impossibly exploded baby bump. + <<elseif $activeSlave.bellyPreg >= 750000>> + massively swollen baby bump. + <<elseif $activeSlave.bellyPreg >= 600000>> + titanic baby belly. + <<else>> + massive belly. + <</if>> + $He won’t be a particularly able lover, but enjoying $his immobility is half the point. +<<else>> + $He can still stand despite $his + <<if $activeSlave.bellyPreg >= 1000000>> + impossibly exploded baby bump, + <<elseif $activeSlave.bellyPreg >= 750000>> + massively swollen baby bump, + <<elseif $activeSlave.bellyPreg >= 600000>> + titanic baby belly, + <<else>> + massive belly, + <</if>> + and won’t be a particularly able lover because of this, but enjoying this obstacle is half the point. +<</if>> +Once $he is situated in the center of your office, you walk a circle around $him, taking special care to +<<if ($activeSlave.bellyTat == "a heart")>> + trace a hand over the obliterated heart shaped tattoo on the front of $his immensely stretched belly. +<<elseif ($activeSlave.bellyTat == "a star")>> + trace a hand over the obliterated star shaped tattoo on the front of $his immensely stretched belly. +<<elseif ($activeSlave.bellyTat == "a butterfly")>> + trace a hand over the obliterated butterfly tattoo on the front of $his immensely stretched belly. +<<else>> + trace a hand over the obliterated, stretched out expanse of slightly darker flesh where $his belly button used to be. +<</if>> +<<if $activeSlave.devotion > 95>> + $He purrs in response to your touch, leaning forward against $his belly and <<if $activeSlave.amp == 1>>wiggles<<else>>lifts $his toes off the ground as $he spreads $his legs<</if>> in preparation for you. +<<elseif ($activeSlave.trust < -20) && ($activeSlave.devotion > -10)>> + $He groans at your touch. +<<else>> + $He winces at your touch. +<</if>> +When you get to $his rear, you slap $his +<<if $activeSlave.butt > 11>> + insanely enormous ass, +<<elseif $activeSlave.butt > 5>> + huge ass, +<<elseif Math.floor($activeSlave.buttImplant/$activeSlave.butt) > .60>> + jiggly, saline filled ass, +<<elseif $activeSlave.butt > 2>> + thick ass, +<<else>> + pert ass, +<</if>> +and then spread $his cheeks for easier access to $his <<if canDoVaginal($activeSlave)>>cunt. <<= VaginalVCheck()>><<else>>asshole. <<= AnalVCheck()>><</if>> Heaving upward, you push $him fully onto $his belly, then lean into $him, fucking $him in a unique spin on the wheelbarrow position<<if $PC.dick == 0>> with your strapon<</if>> and setting $his tightly packed gut to jiggling. $He moans in mixed pain and pleasure as you bring $him over the edge and, by the time you finish with $him and allow $him to return to $his duties, it’s clear +<<if $activeSlave.belly > $activeSlave.pregAdaptation*2000>> + that your recent escapades @@.red;have done lasting damage to $his body.@@ + <<set $activeSlave.health -= 10>> +<<else>> + that you’ve left $him thoroughly exhausted. +<</if>> + +<<if passage() != "Slave Interact">> + <<set _fv = $slaveIndices[$activeSlave.ID]>> + <<if def _fv>> + <<set $slaves[_fv] = $activeSlave>> + <</if>> +<</if>> diff --git a/src/npc/descriptions/fMaternitySwing.tw b/src/npc/descriptions/fMaternitySwing.tw new file mode 100644 index 0000000000000000000000000000000000000000..d6794f0413ca8f77386648ab69b5a252575cc46b --- /dev/null +++ b/src/npc/descriptions/fMaternitySwing.tw @@ -0,0 +1,61 @@ +:: FMaternitySwing [nobr] + +<<run clearSummaryCache($activeSlave)>> +<<setLocalPronouns $activeSlave>> + +You call $him over and hook $him into the reinforced silk maternity swing built into your office, then lift $him into the air so that you can toy with $his hyperfecund body. Once you have $him properly situated with $his +<<if $activeSlave.boobs >= 20000>> + obscenely bloated boobs +<<elseif Math.floor($activeSlave.boobsImplant/$activeSlave.boobs) >= .60>> + augmented balloon boobies +<<elseif $activeSlave.boobs >= 3000>> + enormous breasts +<<else>> + cute tits +<</if>> +and +<<if $activeSlave.bellyPreg >= 1000000>> + ridiculously enormous, baby packed belly +<<elseif $activeSlave.bellyPreg >= 750000>> + mountainous, baby-stuffed gut +<<elseif $activeSlave.bellyPreg >= 600000>> + titanic, baby swollen womb +<<else>> + massive belly +<</if>> +hanging above the floor of your office, you turn your attention to molesting $his ripe protuberances. Running your tongue along the distended nub of $his belly button, you kiss your way up the fertile curve of $his belly, making your way to $his tits so that you can suck on $his $activeSlave.nipples nipples. $He squirms in $his restraints and +<<if $activeSlave.devotion > 95>> + <<if !canTalk($activeSlave)>> + begs you to fuck $him already + <<else>> + groans inchoately, obviously desperate for you to fuck $him + <</if>> +<<elseif ($activeSlave.trust < -20) && ($activeSlave.devotion > -10)>> + groans with barely restrained lust. +<<else>> + groans in lust and terror. +<</if>> +You strap into your own customized version of the device, then elevate your body so that <<if $PC.dick == 1>>your dick<<else>>the device's built-in strapon<</if>> is at the perfect angle to drive yourself and your +<<if $activeSlave.bellyPreg >= 600000>> + brood-slave +<<else>> + glorified belly balloon +<</if>> +into a string of mutual orgasms with some truly astounding aerial sex. +<<if canDoVaginal($activeSlave)>><<= VaginalVCheck()>><<else>><<= AnalVCheck()>><</if>> +The sight of $his swollen body wobbling in mid-air as you pound away at $him never gets old, +<<if $activeSlave.devotion > 95>> + and $he certainly seems to enjoy your ministrations, too. +<<elseif ($activeSlave.trust < -20) && ($activeSlave.devotion > -10)>> + and, by the end of your session, $he seems to be enjoying $himself, too. +<<else>> + and the sight of $his ugly tears rolling down $his face to hit the ground far below is one hell of a bonus. +<</if>> +Once finished, you release $him from $his restraints and have $him carried away to clean $himself up before returning to $his duties. + +<<if passage() != "Slave Interact">> + <<set _fv = $slaveIndices[$activeSlave.ID]>> + <<if def _fv>> + <<set $slaves[_fv] = $activeSlave>> + <</if>> +<</if>> diff --git a/src/npc/descriptions/fPoolSex.tw b/src/npc/descriptions/fPoolSex.tw new file mode 100644 index 0000000000000000000000000000000000000000..e12edeceded53dee656e25621628a24925258fb6 --- /dev/null +++ b/src/npc/descriptions/fPoolSex.tw @@ -0,0 +1,178 @@ +:: FPoolSex [nobr] + +<<run clearSummaryCache($activeSlave)>> +<<setLocalPronouns $activeSlave>> + +You order $him to meet you in the spa for some quality time in the penthouse’s rejuvenating gelatin pool. When you get there, $he’s already in $his bathing attire, reclined at the side of the pool farthest from you with $his massive $activeSlave.skin stomach hanging over the edge and half sunk in the thick, steaming ooze, flushed and sweaty. +<<if $activeSlave.devotion > 95>> + <<if $activeSlave.amp < 1>> + $He’s resting $his head on one arm, but $he gives you a little wave with the other before setting it to rubbing the flank of one + <<if $activeSlave.boobs >= 20000>> + massively overgrown tit + <<elseif Math.floor($activeSlave.boobsImplant/$activeSlave.boobs) >= .60>> + fat, augmented tit + <<elseif $activeSlave.boobs >= 3000>> + huge breast + <<else>> + petite breast + <</if>> + as $he + <<else>> + $He’s resting on a small pile of pillows, enjoying the feeling against the flanks of $his colossal belly. $He wiggles a welcome to you and then + <</if>> + <<if canSee($activeSlave)>>watches<<else>>waits patiently as<</if>> you strip down and change into your swimming outfit. When it’s clear that you’re ready to join $him, $he motions at the pool’s holographic console and coos in delight as its mobility assistance devices kick in, rolling $him into the curative gel. You sink yourself into the pool, taking a moment to bask in the feeling of the warm, curative laced goo as it relaxes your muscles<<if $PC.preg > 30>> and soothes your stretched skin<</if>>, then wade toward your waiting slave. + <br><br> + $He smiles and beckons you toward $him, rubbing circles in the exploded sides of $his colossal belly, then gasps as you take a handful of the ooze and shove it right in $his face. $He sputters indignantly and then + <<if $activeSlave.amp < 1>> + scoops up a handful $himself, flinging it at you. The two of you spend several minutes goo fighting before, eventually, you decide that your + <<else>> + wobbles back and forth, ineffectually trying to fight back as you cover $him in thick wads of gel, over and over. After several minutes of this, you decide that your + <</if>> + <<if $PC.dick == 1>> + solid, quivering erection is in need of $his tender care. <<if canSee($activeSlave)>>Seeing<<else>>Sensing<</if>> the change in your demeanor, $he rolls back to recline at the pool’s edge and, once you’ve joined $him, + <<if $activeSlave.amp < 1>> + reaches down to masturbate your ooze lubricated dick. + <<else>> + rolls forward and reaches down to tease your cockhead with $his mouth<<if $activeSlave.boobs > 600>> and tits<</if>>. + <</if>> + When you feel yourself at the edge of orgasm, you slide in between $his + <<if $activeSlave.butt > 11>> + debilitatingly enormous, cushiony ass + <<elseif $activeSlave.butt > 5>> + massive, cushiony ass + <<elseif Math.floor($activeSlave.buttImplant/$activeSlave.butt) > .60>> + implant swollen ass + <<elseif $activeSlave.butt > 2>> + plush ass + <<else>> + back + <</if>> + and the pool’s silk-lined wall. Reaching, you tease $his <<if canDoVaginal($activeSlave)>>kitty<<else>>asshole<</if>> with your fingers and $he crushes backward into you, moaning and rotating $his hips in response to your attention. Once you’re certain $he’s ready, you slide into $him, driving you both to orgasm. + <<if canDoVaginal($activeSlave)>><<= VaginalVCheck()>><<else>><<= AnalVCheck()>><</if>> + <<else>> + ooze stimulated quim is in need of $his tender care. Seeing the change in your demeanor, $he rolls back to recline at the pool’s edge and, once you’ve joined $him, + <<if $activeSlave.amp < 1>> + reaches down to masterbate your pussy, squeezing and rubbing your clit. + <<else>> + rolls sideways and rubs your vulva as best $he can. + <</if>> + <<if $activeSlave.dick >= 1>> + When you feel yourself at the edge of orgasm, you have the pool’s mobility aids rotate $him into a position level with the pool’s edge, then hop up on that ledge yourself so that you can don a dildo and ream $his <<if canDoVaginal($activeSlave)>>pussy. <<= VaginalVCheck()>><<else>>asshole. <<= AnalVCheck()>><</if>> Satisfied that the angles are right, you grab hold of $his hips and slide half on top of $him, resting your lower half on the rear swell of $his obscenely bloated belly. Pressing your strapon to his needy hole, you tease $him for a moment before ramming home, driving the both of you to repeated orgasm. + <<else>> + When you feel yourself at the edge of orgasm, you have the pool’s mobility aids rotate $him into a position level with the pool’s edge, then hop up on that ledge yourself so that your pussies are level. Satisfied that the angles are right, you grab hold of $his hips and slide half on top of $him, resting your lower half on the rear swell of $his obscenely bloated belly. Pressing your lower lips to $his, you rub your clits together, driving the both of you to repeated orgasm. + <<set $activeSlave.vaginalCount++, $vaginalTotal++>> + <</if>> + <</if>> +<<elseif ($activeSlave.trust < -20) && ($activeSlave.devotion > -10)>> + <<if $activeSlave.amp < 1>> + $He’s resting $his head on one arm, but $he nods at you in acknowledgement as + <<else>> + $He’s resting on a small pile of pillows, enjoying the sensations against the flanks of $his colossal belly. $He nods as you enter, not stopping $his rubbing, and <<if canSee($activeSlave)>>watches<<else>>waits patiently as<</if>> + <</if>> + you strip down and change into your swimming outfit. When it’s clear that you’re ready to join $him, $he motions at the pool’s holographic console and its mobility assistance devices kick in, rolling $him into the curative gel. You sink yourself into the pool, taking a moment to bask in the feeling of the warm, curative laced goo as it relaxes your muscles<<if $PC.preg > 30>> and soothes your stretched skin<</if>>, then wade toward your waiting slave. + <br><br> + $He smiles politely, rubbing circles in the exploded sides of $his colossal belly, then gasps as you take a handful of the ooze and shove it right in $his face. $He sputters indignantly and then + <<if $activeSlave.amp < 1>> + scoops up a handful $himself, flinging it at you. The two of you spend several minutes goo fighting before, eventually, you decide that your + <<else>> + wobbles back and forth, ineffectually trying to fight back as you cover $him in thick wads of gel, over and over. After several minutes of this, you decide that your + <</if>> + <<if $PC.dick == 1>> + solid, quivering erection is in need of $his tender care. <<if canSee($activeSlave)>>Seeing<<else>>Sensing<</if>> the change in your demeanor, $he rolls back to recline at the pool’s edge and, once you’ve joined $him, + <<if $activeSlave.amp < 1>> + reaches down to masturbate your ooze lubricated dick. + <<else>> + rolls forward and reaches down to tease your cockhead with $his mouth<<if $activeSlave.boobs > 600>> and tits<</if>>. + <</if>> + When you feel yourself at the edge of orgasm, you slide in between $his + <<if $activeSlave.butt > 11>> + debilitatingly enormous, cushiony ass + <<elseif $activeSlave.butt > 5>> + massive, cushiony ass + <<elseif Math.floor($activeSlave.buttImplant/$activeSlave.butt) > .60>> + implant swollen ass + <<elseif $activeSlave.butt > 2>> + plush ass + <<else>> + back + <</if>> + and the pool’s silk-lined wall. Reaching, you tease $his <<if canDoVaginal($activeSlave)>>kitty<<else>>asshole<</if>> with your fingers and $he crushes backward into you, moaning and rotating $his hips in response to your attention. Once you’re certain $he’s ready, you slide into $him, driving you both to orgasm. + <<if canDoVaginal($activeSlave)>><<= VaginalVCheck()>><<else>><<= AnalVCheck()>><</if>> + <<else>> + ooze stimulated quim is in need of $his tender care. Seeing the change in your demeanor, $he rolls back to recline at the pool’s edge and, once you’ve joined $him, + <<if $activeSlave.amp < 1>> + reaches down to masterbate your pussy, squeezing and rubbing your clit. + <<else>> + rolls sideways and rubs your vulva as best $he can. + <</if>> + <<if $activeSlave.dick >= 1>> + When you feel yourself at the edge of orgasm, you have the pool’s mobility aids rotate $him into a position level with the pool’s edge, then hop up on that ledge yourself so that you can don a dildo and ream $his <<if canDoVaginal($activeSlave)>>pussy. <<= VaginalVCheck()>><<else>>asshole. <<= AnalVCheck()>><</if>> Satisfied that the angles are right, you grab hold of $his hips and slide half on top of $him, resting your lower half on the rear swell of $his obscenely bloated belly. Pressing your strapon to his needy hole, you tease $him for a moment before ramming home, driving the both of you to repeated orgasm. + <<else>> + When you feel yourself at the edge of orgasm, you have the pool’s mobility aids rotate $him into a position level with the pool’s edge, then hop up on that ledge yourself so that your pussies are level. Satisfied that the angles are right, you grab hold of $his hips and slide half on top of $him, resting your lower half on the rear swell of $his obscenely bloated belly. Pressing your lower lips to $his, you rub your clits together, driving the both of you to repeated orgasm. + <<set $activeSlave.vaginalCount++, $vaginalTotal++>> + <</if>> + <</if>> +<<else>> + <<if $activeSlave.amp < 1>> + $He’s resting $his head on one arm, but $he starts as you enter, watching tensely as + <<else>> + $He’s resting on a small pile of pillows, savoring the sensations against the flanks of $his colossal belly and + <<if $activeSlave.boobs >= 20000>> + massively overgrown tits + <<elseif Math.floor($activeSlave.boobsImplant/$activeSlave.boobs) >= .60>> + fat, augmented tits + <<elseif $activeSlave.boobs >= 3000>> + huge breasts + <<else>> + petite breasts + <</if>> + $He starts as you enter, watching tensely as + <</if>> + you strip down and change into your swimming outfit. When you’re ready to join $him, you motion at the pool’s holographic console and its mobility assistance devices kick in, rolling $him into the curative gel. You sink yourself into the pool, taking a moment to bask in the feeling of the warm, curative laced goo as it relaxes your muscles<<if $PC.preg > 30>> and soothes your stretched skin<</if>>, then wade toward your worried looking slave. + <br><br> + $He smiles politely, rubbing circles in the exploded sides of $his colossal belly, then cries out in surprise as you take a handful of the ooze and shove it right in $his face. $He sputters, blushing, and wobbles back and forth, clearly trying not to react as you cover $him in thick wads of gel, over and over. After several minutes of this, you decide that your + <<if $PC.dick == 1>> + solid, quivering erection is in need of $his tender care. You force $him back into a reclining position at the pool’s edge and order $him to + <<if $activeSlave.amp < 1>> + masturbate your ooze lubricated dick. + <<else>> + tease your cockhead with $his mouth. + <</if>> + $He complies, bringing you to the edge of orgasm, and, before $he can fully push you over the edge, you slide in between $his + <<if $activeSlave.butt > 7>> + debilitatingly enormous, cushiony ass + <<elseif $activeSlave.butt > 4>> + massive, cushiony ass + <<elseif $activeSlave.butt > 2>> + implant swollen ass + <<elseif $activeSlave.buttImplant == 1>> + plush ass + <<else>> + back + <</if>> + and the pool’s silk lined walls. Reaching, you tease $his <<if canDoVaginal($activeSlave)>>kitty<<else>>asshole<</if>> with your fingers and rub one hand back and forth along the line of $his tensed shoulders as $he slowly gives in to lust. Once you’re certain $he’s ready, you slide into $him, driving you both to orgasm. + <<if canDoVaginal($activeSlave)>><<= VaginalVCheck()>><<else>><<= AnalVCheck()>><</if>> + <<else>> + ooze stimulated quim is in need of $his tender care. You force $him back to recline at the pool’s edge and, once you’ve joined $him, + <<if $activeSlave.amp < 1>> + set $him to masturbating your pussy, squeezing and rubbing your clit. + <<else>> + set $him to rubbing your vulva with $his belly button. + <</if>> + <<if $activeSlave.dick >= 1>> + When you feel yourself at the edge of orgasm, you have the pool’s mobility aids rotate $him into a position level with the pool’s edge, then hop up on that ledge yourself so that you can don a dildo and ream $his <<if canDoVaginal($activeSlave)>>pussy. <<= VaginalVCheck()>><<else>>asshole. <<= AnalVCheck()>><</if>> Satisfied that the angles are right, you grab hold of $his hips and slide half on top of $him, resting your lower half on the rear swell of $his obscenely bloated belly. Pressing your strapon to his needy hole, you tease $him for a moment before ramming home, driving the both of you to repeated orgasm. + <<= AnalVCheck()>> + <<else>> + When you feel yourself at the edge of orgasm, you have the pool’s mobility aids rotate $him into a position level with the pool’s edge, then hop up on that ledge yourself so that your pussies are level. Satisfied that the angles are right, you grab hold of $his hips and slide half on top of $him, resting your lower half on the rear swell of $his obscenely bloated belly. Pressing your lower lips to $his, you rub your clits together, driving the both of you to repeated orgasm. + <<set $activeSlave.vaginalCount++, $vaginalTotal++>> + <</if>> + <</if>> +<</if>> +After you’ve finished with $him, you escort $him to the spa’s attached showers so that the two of you can enjoy a bit more time together as you clean off, then allow $him to return to $his duties as you return to your own. + +<<if passage() != "Slave Interact">> + <<set _fv = $slaveIndices[$activeSlave.ID]>> + <<if def _fv>> + <<set $slaves[_fv] = $activeSlave>> + <</if>> +<</if>> diff --git a/src/pregmod/fLickPussy.tw b/src/pregmod/fLickPussy.tw new file mode 100644 index 0000000000000000000000000000000000000000..bee46b35bf538c8cf4aa45a8e8671cc3eb577414 --- /dev/null +++ b/src/pregmod/fLickPussy.tw @@ -0,0 +1,25 @@ +:: FLickPussy [nobr] + +<<run clearSummaryCache($activeSlave)>> +<<setLocalPronouns $activeSlave>> + +<<set _devotion = $activeSlave.devotion>> /*for brevity*/ + +<<if canWalk($activeSlave)>> + You summon $activeSlave.slaveName to your office and order $him to lie down on the couch. $He does so + <<if _devotion > 95>> + with a smile, skipping over to give you a quick kiss before $he complies with your request. + <<elseif _devotion > 50>> + without hesitation, ready to serve and obey. + <<elseif _devotion > -50>> + with a look of trepidation, as though afraid you're going to hurt $him. + <<elseif _devotion <= -50>> + with a look of hatred, though only after you threaten to punish $him. + <</if>> +<<else>> + You have $activeSlave.slaveName brought into your office and placed on your couch. +<</if>> + +After $he is situated, you go over to $him<<if $activeSlave.clothes != "no clothing">> and take off $his clothing, causing $him to <<if _devotion > 50>>give you a soft smile<<else>>give you an angry glare<</if>><</if>>. You suddenly grab $his hips and pull $his crotch to your face, causing $him to give a shriek of surprise. Looking at $him directly in the eyes, you begin to run your tongue along $his labia, drawing a soft moan from $him. The combination of the pleasure and the intense look from the <<if $PC.title == 0>>wo<</if>>man $he<<if _devotion > 95>> loves <<elseif _devotion > 50>>'s accepted as $his <<= WrittenMaster($activeSlave)>><<else>>hates/*not sure what to use for "reluctant"*/<</if>> makes $him blush, but you don't let up. You give $his clit a few expiremental tweaks, causing $his moans to intensify<<if canWalk($activeSlave)>> and $his legs to tighten around your head<</if>>. Before $he cums, though, you pull back, causing $him to whine in frustration. You begin again, then pull back again just before $he orgasms. You repeat this several more times, each time causing $him to become more and more frustrated. Finally, one last stroke of your tongue causes $him to go over the edge, making $him scream out <<if _devotion > 50>>your name<</if>> in ecstasy. You send $him back to $his assignment before calling in another slave to clean up the mess. + +<<set $activeSlave.vaginalCount++, $vaginalTotal++>> \ No newline at end of file diff --git a/src/pregmod/incubatorReport.tw b/src/pregmod/incubatorReport.tw index 9060269cc715e07a86a2f35a1643acb9a5ba8cf4..186822b6a4d4d12e04c6998ae73237ace7cbbe7a 100644 --- a/src/pregmod/incubatorReport.tw +++ b/src/pregmod/incubatorReport.tw @@ -140,7 +140,7 @@ <<if $incubatorUpgradeGrowthStims == 1 && $incubatorGrowthStimsSetting != 0>> <br> - <<set _heightLimit = Math.trunc(Math.clamp((Height.mean($tanks[_inc].height) * 1.25),0,274))>> + <<set _heightLimit = Math.trunc(Math.clamp((Height.mean($tanks[_inc]) * 1.25),0,274))>> <<set _heightLimitAge = Height.forAge($tanks[_inc].height, $tanks[_inc])>> <<if $tanks[_inc].inducedNCS == 1>> /* @@ -457,8 +457,7 @@ $His @@.orange;NCS blocks all growth@@ despite the excess testosterone-laced growth hormones flooding $his body. <<elseif $incubatorUpgradeSpeed == 52>> <<if $tanks[_inc].balls < 10>> - The excess testosterone-laced growth hormones @@.green - cause $his balls to balloon for extra cum production.@@ + The excess testosterone-laced growth hormones @@.green;cause $his balls to balloon for extra cum production.@@ <<set $tanks[_inc].balls += 3>> <</if>> <<if $tanks[_inc].dick < 7 && random(1,100) > 20>> diff --git a/src/pregmod/physicalDevelopment.tw b/src/pregmod/physicalDevelopment.tw index a77373cc0068ab8658ac148d2415f96e8b75bc3c..63ebaf541afd9371f5db03c6ef7d2c2c5c0a4db9 100644 --- a/src/pregmod/physicalDevelopment.tw +++ b/src/pregmod/physicalDevelopment.tw @@ -1080,8 +1080,8 @@ <</if>> <</if>> <</if>> - <<if $args[0].pregAdaptation < 26>> - <<set $args[0].pregAdaptation += 4>> + <<if $args[0].pregAdaptation < 28>> + <<set $args[0].pregAdaptation += 6>> <</if>> <<case 16>> <<if $args[0].hormoneBalance >= 200>> @@ -1173,8 +1173,8 @@ <</if>> <</if>> <</if>> - <<if $args[0].pregAdaptation < 30>> - <<set $args[0].pregAdaptation += 4>> + <<if $args[0].pregAdaptation < 34>> + <<set $args[0].pregAdaptation += 6>> <</if>> <<case 17>> <<if $args[0].hormoneBalance >= 200>> @@ -1266,8 +1266,8 @@ <</if>> <</if>> <</if>> - <<if $args[0].pregAdaptation < 30>> - <<set $args[0].pregAdaptation += 4>> + <<if $args[0].pregAdaptation < 42>> + <<set $args[0].pregAdaptation += 8>> <</if>> <<case 18>> <<if $args[0].hormoneBalance >= 200>> @@ -1359,8 +1359,8 @@ <</if>> <</if>> <</if>> - <<if $args[0].pregAdaptation < 30>> - <<set $args[0].pregAdaptation += 4>> + <<if $args[0].pregAdaptation < 50>> + <<set $args[0].pregAdaptation += 8>> <</if>> <</switch>> diff --git a/src/pregmod/rePregInventorText.tw b/src/pregmod/rePregInventorText.tw index 9d3f266125bfa779dfd9477ac42cfb43c00dc2af..1b031d5faf114786053aeb9cf13efe86f866c43d 100644 --- a/src/pregmod/rePregInventorText.tw +++ b/src/pregmod/rePregInventorText.tw @@ -186,7 +186,7 @@ <</if>> <<else>> <<if canTalk($activeSlave)>> - "My <<Master>>, <<if SlaveStatsChecker.checkForLisp($activeSlave)>><<if SlaveStatsChecker.checkForLisp($activeSlave)>><<= lispReplace(PlayerName())>><<else>><<= PlayerName()>><</if>>, ha<<s>> a vi<<s>>ion for a beautiful future where baby-laden broodmother<<s>> like me are all able to enjoy <<s>>e<<x>> with their owner<<s>> and client<<s>>. We both hope that everyone here will <<s>>upport u<<s>>, and <<s>>o we've hidden <<c>>ertificate<<s>> for free pool<<s>> and <<s>>wing<<s>> under everyone'<<s>> <<s>>eat<<s>>--everybody look! If you like what you've <<s>>een today a<<s>> much a<<s>> we hope you have, my <<Master>> and I both hope you'll be filling these invention<<s>> with your own <<s>>lave<<s>>' <<s>>wollen bodie<<s>>, <<s>>oon. And we hope that, <<s>>ome day, everyone watching at home will enjoy hyperpregnant <<s>>e<<x>> with our new toy<<s>>, too!" + "My <<Master>>, <<if SlaveStatsChecker.checkForLisp($activeSlave)>><<= lispReplace(PlayerName())>><<else>><<= PlayerName()>><</if>>, ha<<s>> a vi<<s>>ion for a beautiful future where baby-laden broodmother<<s>> like me are all able to enjoy <<s>>e<<x>> with their owner<<s>> and client<<s>>. We both hope that everyone here will <<s>>upport u<<s>>, and <<s>>o we've hidden <<c>>ertificate<<s>> for free pool<<s>> and <<s>>wing<<s>> under everyone'<<s>> <<s>>eat<<s>>--everybody look! If you like what you've <<s>>een today a<<s>> much a<<s>> we hope you have, my <<Master>> and I both hope you'll be filling these invention<<s>> with your own <<s>>lave<<s>>' <<s>>wollen bodie<<s>>, <<s>>oon. And we hope that, <<s>>ome day, everyone watching at home will enjoy hyperpregnant <<s>>e<<x>> with our new toy<<s>>, too!" <<else>> Since your slave is unable to speak, $he signals the show's video crew to start playing a pre-recorded video in which you explain your vision for a future where specialized hyper-swollen breeding slaves aren't just a sexual novelty, but enjoyable to fuck in their own right. You then open your arms wide, in the video, and declare that vouchers for free pools and swings have been hidden under the audience's chairs. <</if>> diff --git a/src/pregmod/saPorn.tw b/src/pregmod/saPorn.tw index 1781fcd9bd96e80111ac40e198aa86d5921330bb..5dea814d9d5435ac4a41e63758e3553b9b28b8ba 100644 --- a/src/pregmod/saPorn.tw +++ b/src/pregmod/saPorn.tw @@ -110,7 +110,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeNeglectful>> <<set $slaves[$i].pornTypeNeglectful += _adjustedViewership+($slaves[$i].fetishStrength*2)-((_decayRate/10)*($pornStarNeglectfuls-1))>> - <<set $slaves[$i].pornTypeNeglectful = Math.clamp($slaves[$i].pornTypeNeglectful, 0, 100000)>> + <<set $slaves[$i].pornTypeNeglectful = Math.clamp($slaves[$i].pornTypeNeglectful, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "neglectful" || $slaves[$i].pornFameType == "orgasm denial">> @@ -126,7 +126,7 @@ <<if $cheatMode == 1>>Neglectful: (_oldPorn) to ($slaves[$i].pornTypeNeglectful).<</if>> <<elseif $slaves[$i].pornTypeNeglectful > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeNeglectful>><</if>> - <<set $slaves[$i].pornTypeNeglectful = Math.clamp($slaves[$i].pornTypeNeglectful-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeNeglectful = Math.clamp($slaves[$i].pornTypeNeglectful-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Neglectful: (_oldPorn) to ($slaves[$i].pornTypeNeglectful).<</if>> <</if>> <<if $slaves[$i].sexualFlaw == "cum addict">> @@ -137,7 +137,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeCumAddict>> <<set $slaves[$i].pornTypeCumAddict += _adjustedViewership+($slaves[$i].fetishStrength*2)-((_decayRate/10)*($pornStarCumAddicts-1))>> - <<set $slaves[$i].pornTypeCumAddict = Math.clamp($slaves[$i].pornTypeCumAddict, 0, 100000)>> + <<set $slaves[$i].pornTypeCumAddict = Math.clamp($slaves[$i].pornTypeCumAddict, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "cum addict" || $slaves[$i].pornFameType == "bukkake">> @@ -153,7 +153,7 @@ <<if $cheatMode == 1>>Cum Addict: (_oldPorn) to ($slaves[$i].pornTypeCumAddict).<</if>> <<elseif $slaves[$i].pornTypeCumAddict > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeCumAddict>><</if>> - <<set $slaves[$i].pornTypeCumAddict = Math.clamp($slaves[$i].pornTypeCumAddict-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeCumAddict = Math.clamp($slaves[$i].pornTypeCumAddict-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Cum Addict: (_oldPorn) to ($slaves[$i].pornTypeCumAddict).<</if>> <</if>> <<if $slaves[$i].sexualFlaw == "anal addict" && canDoAnal($slaves[$i])>> @@ -164,7 +164,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeAnalAddict>> <<set $slaves[$i].pornTypeAnalAddict += _adjustedViewership+($slaves[$i].fetishStrength*2)-((_decayRate/10)*($pornStarAnalAddicts-1))>> - <<set $slaves[$i].pornTypeAnalAddict = Math.clamp($slaves[$i].pornTypeAnalAddict, 0, 100000)>> + <<set $slaves[$i].pornTypeAnalAddict = Math.clamp($slaves[$i].pornTypeAnalAddict, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].sexualFlaw == "anal addict" || $slaves[$i].pornFameType == "anal addiction">> @@ -180,7 +180,7 @@ <<if $cheatMode == 1>>Anal Addict: (_oldPorn) to ($slaves[$i].pornTypeAnalAddict).<</if>> <<elseif $slaves[$i].pornTypeAnalAddict > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeAnalAddict>><</if>> - <<set $slaves[$i].pornTypeAnalAddict = Math.clamp($slaves[$i].pornTypeAnalAddict-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeAnalAddict = Math.clamp($slaves[$i].pornTypeAnalAddict-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Anal Addict: (_oldPorn) to ($slaves[$i].pornTypeAnalAddict).<</if>> <</if>> <<if $slaves[$i].sexualFlaw == "attention whore">> @@ -191,7 +191,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeAttentionWhore>> <<set $slaves[$i].pornTypeAttentionWhore += _adjustedViewership+($slaves[$i].fetishStrength*2)-((_decayRate/10)*($pornStarAttentionWhores-1))>> - <<set $slaves[$i].pornTypeAttentionWhore = Math.clamp($slaves[$i].pornTypeAttentionWhore, 0, 100000)>> + <<set $slaves[$i].pornTypeAttentionWhore = Math.clamp($slaves[$i].pornTypeAttentionWhore, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "attention whore" || $slaves[$i].pornFameType == "exhibition">> @@ -207,7 +207,7 @@ <<if $cheatMode == 1>>Attention Whore: (_oldPorn) to ($slaves[$i].pornTypeAttentionWhore).<</if>> <<elseif $slaves[$i].pornTypeAttentionWhore > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeAttentionWhore>><</if>> - <<set $slaves[$i].pornTypeAttentionWhore = Math.clamp($slaves[$i].pornTypeAttentionWhore-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeAttentionWhore = Math.clamp($slaves[$i].pornTypeAttentionWhore-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Attention Whore: (_oldPorn) to ($slaves[$i].pornTypeAttentionWhore).<</if>> <</if>> <<if $slaves[$i].sexualFlaw == "breast growth">> @@ -218,7 +218,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeBreastGrowth>> <<set $slaves[$i].pornTypeBreastGrowth += _adjustedViewership+($slaves[$i].fetishStrength*2)-((_decayRate/10)*($pornStarBreastGrowths-1))>> - <<set $slaves[$i].pornTypeBreastGrowth = Math.clamp($slaves[$i].pornTypeBreastGrowth, 0, 100000)>> + <<set $slaves[$i].pornTypeBreastGrowth = Math.clamp($slaves[$i].pornTypeBreastGrowth, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "breast growth" || $slaves[$i].pornFameType == "breast expansion">> @@ -234,7 +234,7 @@ <<if $cheatMode == 1>>Breast Growth: (_oldPorn) to ($slaves[$i].pornTypeBreastGrowth).<</if>> <<elseif $slaves[$i].pornTypeBreastGrowth > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeBreastGrowth>><</if>> - <<set $slaves[$i].pornTypeBreastGrowth = Math.clamp($slaves[$i].pornTypeBreastGrowth-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeBreastGrowth = Math.clamp($slaves[$i].pornTypeBreastGrowth-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Breast Growth: (_oldPorn) to ($slaves[$i].pornTypeBreastGrowth).<</if>> <</if>> <<if $slaves[$i].sexualFlaw == "abusive">> @@ -245,7 +245,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeAbusive>> <<set $slaves[$i].pornTypeAbusive += _adjustedViewership+($slaves[$i].fetishStrength*2)-((_decayRate/10)*($pornStarAbusives-1))>> - <<set $slaves[$i].pornTypeAbusive = Math.clamp($slaves[$i].pornTypeAbusive, 0, 100000)>> + <<set $slaves[$i].pornTypeAbusive = Math.clamp($slaves[$i].pornTypeAbusive, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "abusive" || $slaves[$i].pornFameType == "abuse">> @@ -261,7 +261,7 @@ <<if $cheatMode == 1>>Abusive: (_oldPorn) to ($slaves[$i].pornTypeAbusive).<</if>> <<elseif $slaves[$i].pornTypeAbusive > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeAbusive>><</if>> - <<set $slaves[$i].pornTypeAbusive = Math.clamp($slaves[$i].pornTypeAbusive-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeAbusive = Math.clamp($slaves[$i].pornTypeAbusive-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Abusive: (_oldPorn) to ($slaves[$i].pornTypeAbusive).<</if>> <</if>> <<if $slaves[$i].sexualFlaw == "malicious">> @@ -272,7 +272,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeMalicious>> <<set $slaves[$i].pornTypeMalicious += _adjustedViewership+($slaves[$i].fetishStrength*2)-((_decayRate/10)*($pornStarMalicious-1))>> - <<set $slaves[$i].pornTypeMalicious = Math.clamp($slaves[$i].pornTypeMalicious, 0, 100000)>> + <<set $slaves[$i].pornTypeMalicious = Math.clamp($slaves[$i].pornTypeMalicious, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "malicious" || $slaves[$i].pornFameType == "sexual torture">> @@ -288,7 +288,7 @@ <<if $cheatMode == 1>>Malicious: (_oldPorn) to ($slaves[$i].pornTypeMalicious).<</if>> <<elseif $slaves[$i].pornTypeMalicious > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeMalicious>><</if>> - <<set $slaves[$i].pornTypeMalicious = Math.clamp($slaves[$i].pornTypeMalicious-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeMalicious = Math.clamp($slaves[$i].pornTypeMalicious-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Malicious: (_oldPorn) to ($slaves[$i].pornTypeMalicious).<</if>> <</if>> <<if $slaves[$i].sexualFlaw == "self hating">> @@ -299,7 +299,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeSelfHating>> <<set $slaves[$i].pornTypeSelfHating += _adjustedViewership+($slaves[$i].fetishStrength*2)-((_decayRate/10)*($pornStarSelfHatings-1))>> - <<set $slaves[$i].pornTypeSelfHating = Math.clamp($slaves[$i].pornTypeSelfHating, 0, 100000)>> + <<set $slaves[$i].pornTypeSelfHating = Math.clamp($slaves[$i].pornTypeSelfHating, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "self hating" || $slaves[$i].pornFameType == "self hating">> @@ -315,7 +315,7 @@ <<if $cheatMode == 1>>Self Hating: (_oldPorn) to ($slaves[$i].pornTypeSelfHating).<</if>> <<elseif $slaves[$i].pornTypeSelfHating > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeSelfHating>><</if>> - <<set $slaves[$i].pornTypeSelfHating = Math.clamp($slaves[$i].pornTypeSelfHating-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeSelfHating = Math.clamp($slaves[$i].pornTypeSelfHating-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Self Hating: (_oldPorn) to ($slaves[$i].pornTypeSelfHating).<</if>> <</if>> <<if $slaves[$i].sexualFlaw == "breeder">> @@ -326,7 +326,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeBreeder>> <<set $slaves[$i].pornTypeBreeder += _adjustedViewership+($slaves[$i].fetishStrength*2)-((_decayRate/10)*($pornStarBreeders-1))>> - <<set $slaves[$i].pornTypeBreeder = Math.clamp($slaves[$i].pornTypeBreeder, 0, 100000)>> + <<set $slaves[$i].pornTypeBreeder = Math.clamp($slaves[$i].pornTypeBreeder, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "breeder" || $slaves[$i].pornFameType == "breeder">> @@ -342,7 +342,7 @@ <<if $cheatMode == 1>>Breeder: (_oldPorn) to ($slaves[$i].pornTypeBreeder).<</if>> <<elseif $slaves[$i].pornTypeBreeder > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeBreeder>><</if>> - <<set $slaves[$i].pornTypeBreeder = Math.clamp($slaves[$i].pornTypeBreeder-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeBreeder = Math.clamp($slaves[$i].pornTypeBreeder-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Breeder: (_oldPorn) to ($slaves[$i].pornTypeBreeder).<</if>> <</if>> @@ -355,7 +355,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeSub>> <<set $slaves[$i].pornTypeSub += (_adjustedViewership/_viewerSoaking)+($slaves[$i].fetishStrength)-((_decayRate/10)*($pornStarSubs-1))>> - <<set $slaves[$i].pornTypeSub = Math.clamp($slaves[$i].pornTypeSub, 0, 100000)>> + <<set $slaves[$i].pornTypeSub = Math.clamp($slaves[$i].pornTypeSub, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "submissive" || $slaves[$i].pornFameType == "submissive">> @@ -371,7 +371,7 @@ <<if $cheatMode == 1>>Submissive: (_oldPorn) to ($slaves[$i].pornTypeSub).<</if>> <<elseif $slaves[$i].pornTypeSub > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeSub>><</if>> - <<set $slaves[$i].pornTypeSub = Math.clamp($slaves[$i].pornTypeSub-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeSub = Math.clamp($slaves[$i].pornTypeSub-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Submissive: (_oldPorn) to ($slaves[$i].pornTypeSub).<</if>> <</if>> <<if $slaves[$i].fetish == "cumslut">> @@ -382,7 +382,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeCumSlut>> <<set $slaves[$i].pornTypeCumSlut += (_adjustedViewership/_viewerSoaking)+($slaves[$i].fetishStrength)-((_decayRate/10)*($pornStarCumSluts-1))>> - <<set $slaves[$i].pornTypeCumSlut = Math.clamp($slaves[$i].pornTypeCumSlut, 0, 100000)>> + <<set $slaves[$i].pornTypeCumSlut = Math.clamp($slaves[$i].pornTypeCumSlut, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "cumslut" || $slaves[$i].pornFameType == "cum">> @@ -398,7 +398,7 @@ <<if $cheatMode == 1>>Cumslut: (_oldPorn) to ($slaves[$i].pornTypeCumSlut).<</if>> <<elseif $slaves[$i].pornTypeCumSlut > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeCumSlut>><</if>> - <<set $slaves[$i].pornTypeCumSlut = Math.clamp($slaves[$i].pornTypeCumSlut-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeCumSlut = Math.clamp($slaves[$i].pornTypeCumSlut-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Cumslut: (_oldPorn) to ($slaves[$i].pornTypeCumSlut).<</if>> <</if>> <<if $slaves[$i].fetish == "buttslut">> @@ -409,7 +409,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeAnal>> <<set $slaves[$i].pornTypeAnal += (_adjustedViewership/_viewerSoaking)+($slaves[$i].fetishStrength)-((_decayRate/10)*($pornStarAnals-1))>> - <<set $slaves[$i].pornTypeAnal = Math.clamp($slaves[$i].pornTypeAnal, 0, 100000)>> + <<set $slaves[$i].pornTypeAnal = Math.clamp($slaves[$i].pornTypeAnal, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "buttslut" || $slaves[$i].pornFameType == "buttslut">> @@ -425,7 +425,7 @@ <<if $cheatMode == 1>>Buttslut: (_oldPorn) to ($slaves[$i].pornTypeAnal).<</if>> <<elseif $slaves[$i].pornTypeAnal > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeAnal>><</if>> - <<set $slaves[$i].pornTypeAnal = Math.clamp($slaves[$i].pornTypeAnal-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeAnal = Math.clamp($slaves[$i].pornTypeAnal-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>(_oldPorn) to ($slaves[$i].pornTypeAnal).<</if>> <</if>> <<if $slaves[$i].fetish == "humiliation">> @@ -436,7 +436,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeHumiliation>> <<set $slaves[$i].pornTypeHumiliation += (_adjustedViewership/_viewerSoaking)+($slaves[$i].fetishStrength)-((_decayRate/10)*($pornStarHumiliations-1))>> - <<set $slaves[$i].pornTypeHumiliation = Math.clamp($slaves[$i].pornTypeHumiliation, 0, 100000)>> + <<set $slaves[$i].pornTypeHumiliation = Math.clamp($slaves[$i].pornTypeHumiliation, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "humiliation" || $slaves[$i].pornFameType == "humiliating">> @@ -452,7 +452,7 @@ <<if $cheatMode == 1>>Humiliation: (_oldPorn) to ($slaves[$i].pornTypeHumiliation).<</if>> <<elseif $slaves[$i].pornTypeHumiliation > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeHumiliation>><</if>> - <<set $slaves[$i].pornTypeHumiliation = Math.clamp($slaves[$i].pornTypeHumiliation-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeHumiliation = Math.clamp($slaves[$i].pornTypeHumiliation-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Humiliation: (_oldPorn) to ($slaves[$i].pornTypeHumiliation).<</if>> <</if>> <<if $slaves[$i].fetish == "boobs">> @@ -463,7 +463,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeBoobs>> <<set $slaves[$i].pornTypeBoobs += (_adjustedViewership/_viewerSoaking)+($slaves[$i].fetishStrength)-((_decayRate/10)*($pornStarBoobs-1))>> - <<set $slaves[$i].pornTypeBoobs = Math.clamp($slaves[$i].pornTypeBoobs, 0, 100000)>> + <<set $slaves[$i].pornTypeBoobs = Math.clamp($slaves[$i].pornTypeBoobs, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "boobs" || $slaves[$i].pornFameType == "breast">> @@ -479,7 +479,7 @@ <<if $cheatMode == 1>>Boobs: (_oldPorn) to ($slaves[$i].pornTypeBoobs).<</if>> <<elseif $slaves[$i].pornTypeBoobs > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeBoobs>><</if>> - <<set $slaves[$i].pornTypeBoobs = Math.clamp($slaves[$i].pornTypeBoobs-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeBoobs = Math.clamp($slaves[$i].pornTypeBoobs-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Boobs: (_oldPorn) to ($slaves[$i].pornTypeBoobs).<</if>> <</if>> <<if $slaves[$i].fetish == "dom">> @@ -490,7 +490,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeDom>> <<set $slaves[$i].pornTypeDom += (_adjustedViewership/_viewerSoaking)+($slaves[$i].fetishStrength)-((_decayRate/10)*($pornStarDoms-1))>> - <<set $slaves[$i].pornTypeDom = Math.clamp($slaves[$i].pornTypeDom, 0, 100000)>> + <<set $slaves[$i].pornTypeDom = Math.clamp($slaves[$i].pornTypeDom, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "dom" || $slaves[$i].pornFameType == "dominant">> @@ -506,7 +506,7 @@ <<if $cheatMode == 1>>Dom: (_oldPorn) to ($slaves[$i].pornTypeDom).<</if>> <<elseif $slaves[$i].pornTypeDom > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeDom>><</if>> - <<set $slaves[$i].pornTypeDom = Math.clamp($slaves[$i].pornTypeDom-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeDom = Math.clamp($slaves[$i].pornTypeDom-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Dom: (_oldPorn) to ($slaves[$i].pornTypeDom).<</if>> <</if>> <<if $slaves[$i].fetish == "sadist">> @@ -517,7 +517,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeSadist>> <<set $slaves[$i].pornTypeSadist += (_adjustedViewership/_viewerSoaking)+($slaves[$i].fetishStrength)-((_decayRate/10)*($pornStarSadists-1))>> - <<set $slaves[$i].pornTypeSadist = Math.clamp($slaves[$i].pornTypeSadist, 0, 100000)>> + <<set $slaves[$i].pornTypeSadist = Math.clamp($slaves[$i].pornTypeSadist, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "sadist" || $slaves[$i].pornFameType == "sadistic">> @@ -533,7 +533,7 @@ <<if $cheatMode == 1>>Sadist: (_oldPorn) to ($slaves[$i].pornTypeSadist).<</if>> <<elseif $slaves[$i].pornTypeSadist > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeSadist>><</if>> - <<set $slaves[$i].pornTypeSadist = Math.clamp($slaves[$i].pornTypeSadist-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeSadist = Math.clamp($slaves[$i].pornTypeSadist-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Sadist: (_oldPorn) to ($slaves[$i].pornTypeSadist).<</if>> <</if>> <<if $slaves[$i].fetish == "masochist">> @@ -544,7 +544,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeMasochist>> <<set $slaves[$i].pornTypeMasochist += (_adjustedViewership/_viewerSoaking)+($slaves[$i].fetishStrength)-((_decayRate/10)*($pornStarMasochists-1))>> - <<set $slaves[$i].pornTypeMasochist = Math.clamp($slaves[$i].pornTypeMasochist, 0, 100000)>> + <<set $slaves[$i].pornTypeMasochist = Math.clamp($slaves[$i].pornTypeMasochist, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "masochist" || $slaves[$i].pornFameType == "masochistic">> @@ -560,7 +560,7 @@ <<if $cheatMode == 1>>Masochist: (_oldPorn) to ($slaves[$i].pornTypeMasochist).<</if>> <<elseif $slaves[$i].pornTypeMasochist > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeMasochist>><</if>> - <<set $slaves[$i].pornTypeMasochist = Math.clamp($slaves[$i].pornTypeMasochist-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeMasochist = Math.clamp($slaves[$i].pornTypeMasochist-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Masochist: (_oldPorn) to ($slaves[$i].pornTypeMasochist).<</if>> <</if>> <<if $slaves[$i].fetish == "pregnancy">> @@ -571,7 +571,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypePregnancy>> <<set $slaves[$i].pornTypePregnancy += (_adjustedViewership/_viewerSoaking)+($slaves[$i].fetishStrength)-((_decayRate/10)*($pornStarPregnancySluts-1))>> - <<set $slaves[$i].pornTypePregnancy = Math.clamp($slaves[$i].pornTypePregnancy, 0, 100000)>> + <<set $slaves[$i].pornTypePregnancy = Math.clamp($slaves[$i].pornTypePregnancy, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "pregnancy" || $slaves[$i].pornFameType == "pregnancy fetish">> @@ -587,7 +587,7 @@ <<if $cheatMode == 1>>Pregnancy: (_oldPorn) to ($slaves[$i].pornTypePregnancy).<</if>> <<elseif $slaves[$i].pornTypePregnancy > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypePregnancy>><</if>> - <<set $slaves[$i].pornTypePregnancy = Math.clamp($slaves[$i].pornTypePregnancy-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypePregnancy = Math.clamp($slaves[$i].pornTypePregnancy-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Pregnancy: (_oldPorn) to ($slaves[$i].pornTypePregnancy).<</if>> <</if>> @@ -601,7 +601,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeFuckdoll>> <<set $slaves[$i].pornTypeFuckdoll += (_adjustedViewership/_viewerSoaking)-((_decayRate/10)*($pornStarFuckdolls-1))>> - <<set $slaves[$i].pornTypeFuckdoll = Math.clamp($slaves[$i].pornTypeFuckdoll, 0, 100000)>> + <<set $slaves[$i].pornTypeFuckdoll = Math.clamp($slaves[$i].pornTypeFuckdoll, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "fuckdoll" || $slaves[$i].pornFameType == "fuckdoll">> @@ -617,7 +617,7 @@ <<if $cheatMode == 1>>Fuckdoll: (_oldPorn) to ($slaves[$i].pornTypeFuckdoll).<</if>> <<elseif $slaves[$i].pornTypeFuckdoll > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeFuckdoll>><</if>> - <<set $slaves[$i].pornTypeFuckdoll = Math.clamp($slaves[$i].pornTypeFuckdoll-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeFuckdoll = Math.clamp($slaves[$i].pornTypeFuckdoll-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Fuckdoll: (_oldPorn) to ($slaves[$i].pornTypeFuckdoll).<</if>> <</if>> <<if ($slaves[$i].devotion < -20) && ($slaves[$i].analCount + $slaves[$i].vaginalCount > 0)>> @@ -628,7 +628,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeRape>> <<set $slaves[$i].pornTypeRape += (_adjustedViewership/_viewerSoaking)-((_decayRate/10)*($pornStarRapees-1))>> - <<set $slaves[$i].pornTypeRape = Math.clamp($slaves[$i].pornTypeRape, 0, 100000)>> + <<set $slaves[$i].pornTypeRape = Math.clamp($slaves[$i].pornTypeRape, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "rape" || $slaves[$i].pornFameType == "rape">> @@ -644,7 +644,7 @@ <<if $cheatMode == 1>>Rape: (_oldPorn) to ($slaves[$i].pornTypeRape).<</if>> <<elseif $slaves[$i].pornTypeRape > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeRape>><</if>> - <<set $slaves[$i].pornTypeRape = Math.clamp($slaves[$i].pornTypeRape-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeRape = Math.clamp($slaves[$i].pornTypeRape-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Rape: (_oldPorn) to ($slaves[$i].pornTypeRape).<</if>> <</if>> <<if $slaves[$i].bellyPreg > 500>> @@ -655,7 +655,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypePreggo>> <<set $slaves[$i].pornTypePreggo += (_adjustedViewership/_viewerSoaking)-((_decayRate/10)*($pornStarPreggos-1))>> - <<set $slaves[$i].pornTypePreggo = Math.clamp($slaves[$i].pornTypePreggo, 0, 100000)>> + <<set $slaves[$i].pornTypePreggo = Math.clamp($slaves[$i].pornTypePreggo, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "preggo" || $slaves[$i].pornFameType == "preggo">> @@ -671,7 +671,7 @@ <<if $cheatMode == 1>>Preggo: (_oldPorn) to ($slaves[$i].pornTypePreggo).<</if>> <<elseif $slaves[$i].pornTypePreggo > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypePreggo>><</if>> - <<set $slaves[$i].pornTypePreggo = Math.clamp($slaves[$i].pornTypePreggo-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypePreggo = Math.clamp($slaves[$i].pornTypePreggo-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Preggo: (_oldPorn) to ($slaves[$i].pornTypePreggo).<</if>> <</if>> <<if $slaves[$i].weight > 95>> @@ -682,11 +682,11 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeBBW>> <<set $slaves[$i].pornTypeBBW += (_adjustedViewership/_viewerSoaking)-((_decayRate/10)*($pornStarBBWs-1))>> - <<set $slaves[$i].pornTypeBBW = Math.clamp($slaves[$i].pornTypeBBW, 0, 100000)>> + <<set $slaves[$i].pornTypeBBW = Math.clamp($slaves[$i].pornTypeBBW, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "BBW" || $slaves[$i].pornFameType == "BBW">> - $His weight gives $him a heavy allure to the chubby chasers and BBS lovers out there. + $His weight gives $him a heavy allure to the chubby chasers and BBW lovers out there. <<if $slaves[$i].pornTypeBBW > _oldPorn>> Viewership @@.green;increased@@ this week. <<elseif $slaves[$i].pornTypeBBW < _oldPorn>> @@ -698,7 +698,7 @@ <<if $cheatMode == 1>>BBW: (_oldPorn) to ($slaves[$i].pornTypeBBW).<</if>> <<elseif $slaves[$i].pornTypeBBW > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeBBW>><</if>> - <<set $slaves[$i].pornTypeBBW = Math.clamp($slaves[$i].pornTypeBBW-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeBBW = Math.clamp($slaves[$i].pornTypeBBW-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>BBW: (_oldPorn) to ($slaves[$i].pornTypeBBW).<</if>> <</if>> <<if $slaves[$i].visualAge <= 12>> @@ -709,7 +709,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeLoli>> <<set $slaves[$i].pornTypeLoli += (_adjustedViewership/_viewerSoaking)-((_decayRate/10)*($pornStarLolis-1))>> - <<set $slaves[$i].pornTypeLoli = Math.clamp($slaves[$i].pornTypeLoli, 0, 100000)>> + <<set $slaves[$i].pornTypeLoli = Math.clamp($slaves[$i].pornTypeLoli, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "loli" || $slaves[$i].pornFameType == "underage">> @@ -725,7 +725,7 @@ <<if $cheatMode == 1>>Loli: (_oldPorn) to ($slaves[$i].pornTypeLoli).<</if>> <<elseif $slaves[$i].pornTypeLoli > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeLoli>><</if>> - <<set $slaves[$i].pornTypeLoli = Math.clamp($slaves[$i].pornTypeLoli-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeLoli = Math.clamp($slaves[$i].pornTypeLoli-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Loli: (_oldPorn) to ($slaves[$i].pornTypeLoli).<</if>> <</if>> <<if ($slaves[$i].weight > 30 && $slaves[$i].diet == "fattening") || ($slaves[$i].inflation > 0 && $slaves[$i].inflationType == "food")>> @@ -736,7 +736,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeGainer>> <<set $slaves[$i].pornTypeGainer += (_adjustedViewership/_viewerSoaking)-((_decayRate/10)*($pornStarGainers-1))>> - <<set $slaves[$i].pornTypeGainer = Math.clamp($slaves[$i].pornTypeGainer, 0, 100000)>> + <<set $slaves[$i].pornTypeGainer = Math.clamp($slaves[$i].pornTypeGainer, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "gainer" || $slaves[$i].pornFameType == "weight gain">> @@ -752,7 +752,7 @@ <<if $cheatMode == 1>>Gainer: (_oldPorn) to ($slaves[$i].pornTypeGainer).<</if>> <<elseif $slaves[$i].pornTypeGainer > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeGainer>><</if>> - <<set $slaves[$i].pornTypeGainer = Math.clamp($slaves[$i].pornTypeGainer-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeGainer = Math.clamp($slaves[$i].pornTypeGainer-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Gainer: (_oldPorn) to ($slaves[$i].pornTypeGainer).<</if>> <</if>> <<if canPenetrate($slaves[$i]) && $slaves[$i].dick > 3>> @@ -763,7 +763,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeStud>> <<set $slaves[$i].pornTypeStud += (_adjustedViewership/_viewerSoaking)-((_decayRate/10)*($pornStarStuds-1))>> - <<set $slaves[$i].pornTypeStud = Math.clamp($slaves[$i].pornTypeStud, 0, 100000)>> + <<set $slaves[$i].pornTypeStud = Math.clamp($slaves[$i].pornTypeStud, 0, 150000)>> <<set _viewerSoaking++>> <<if $slaves[$i].pornFocus == "stud" || $slaves[$i].pornFameType == "big dick">> @@ -779,7 +779,7 @@ <<if $cheatMode == 1>>Big Dick: (_oldPorn) to ($slaves[$i].pornTypeStud).<</if>> <<elseif $slaves[$i].pornTypeStud > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeStud>><</if>> - <<set $slaves[$i].pornTypeStud = Math.clamp($slaves[$i].pornTypeStud-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeStud = Math.clamp($slaves[$i].pornTypeStud-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Big Dick: (_oldPorn) to ($slaves[$i].pornTypeStud).<</if>> <</if>> <<if $slaves[$i].pornFocus == "porn" || $slaves[$i].pornFameType === "generic">> @@ -789,7 +789,7 @@ <</if>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeGeneral>><</if>> <<set $slaves[$i].pornTypeGeneral += (_adjustedViewership/_viewerSoaking)-((_decayRate/10)*($pornStars-1))>> - <<set $slaves[$i].pornTypeGeneral = Math.clamp($slaves[$i].pornTypeGeneral, 0, 100000)>> + <<set $slaves[$i].pornTypeGeneral = Math.clamp($slaves[$i].pornTypeGeneral, 0, 150000)>> <<if $cheatMode == 1>>General: (_oldPorn) to ($slaves[$i].pornTypeGeneral).<</if>> /*Quirks are low and unlikely, requiring focus to push into the limelight*/ @@ -801,7 +801,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeDeepThroat>> <<set $slaves[$i].pornTypeDeepThroat += (_adjustedViewership/_viewerSoaking)-((_decayRate/10)*($pornStarDeepThroats-1))>> - <<set $slaves[$i].pornTypeDeepThroat = Math.clamp($slaves[$i].pornTypeDeepThroat, 0, 100000)>> + <<set $slaves[$i].pornTypeDeepThroat = Math.clamp($slaves[$i].pornTypeDeepThroat, 0, 150000)>> <<if $slaves[$i].pornFocus == "gagfuck queen" || $slaves[$i].pornFameType == "deepthroat">> $He impresses with just how much dick can slip down $his throat. @@ -816,7 +816,7 @@ <<if $cheatMode == 1>>Gagfuck Queen: (_oldPorn) to ($slaves[$i].pornTypeDeepThroat).<</if>> <<elseif $slaves[$i].pornTypeDeepThroat > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeDeepThroat>><</if>> - <<set $slaves[$i].pornTypeDeepThroat = Math.clamp($slaves[$i].pornTypeDeepThroat-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeDeepThroat = Math.clamp($slaves[$i].pornTypeDeepThroat-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Gagfuck Queen: (_oldPorn) to ($slaves[$i].pornTypeDeepThroat).<</if>> <</if>> <<if $slaves[$i].sexualQuirk == "strugglefuck queen" && (canDoVaginal($slaves[$i]) || canDoAnal($slaves[$i]))>> @@ -827,7 +827,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeStruggleFuck>> <<set $slaves[$i].pornTypeStruggleFuck += (_adjustedViewership/_viewerSoaking)-((_decayRate/10)*($pornStarStruggleFucks-1))>> - <<set $slaves[$i].pornTypeStruggleFuck = Math.clamp($slaves[$i].pornTypeStruggleFuck, 0, 100000)>> + <<set $slaves[$i].pornTypeStruggleFuck = Math.clamp($slaves[$i].pornTypeStruggleFuck, 0, 150000)>> <<if $slaves[$i].pornFocus == "strugglefuck queen" || $slaves[$i].pornFameType == "unwilling">> $He impresses with $his ability to put up just the right amount of fight during sex. @@ -842,7 +842,7 @@ <<if $cheatMode == 1>>Strugglefuck Queen: (_oldPorn) to ($slaves[$i].pornTypeStruggleFuck).<</if>> <<elseif $slaves[$i].pornTypeStruggleFuck > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeStruggleFuck>><</if>> - <<set $slaves[$i].pornTypeStruggleFuck = Math.clamp($slaves[$i].pornTypeStruggleFuck-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeStruggleFuck = Math.clamp($slaves[$i].pornTypeStruggleFuck-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Strugglefuck Queen: (_oldPorn) to ($slaves[$i].pornTypeStruggleFuck).<</if>> <</if>> <<if $slaves[$i].sexualQuirk == "painal queen" && canDoAnal($slaves[$i])>> @@ -853,7 +853,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypePainal>> <<set $slaves[$i].pornTypePainal += (_adjustedViewership/_viewerSoaking)-((_decayRate/10)*($pornStarPainals-1))>> - <<set $slaves[$i].pornTypePainal = Math.clamp($slaves[$i].pornTypePainal, 0, 100000)>> + <<set $slaves[$i].pornTypePainal = Math.clamp($slaves[$i].pornTypePainal, 0, 150000)>> <<if $slaves[$i].pornFocus == "painal queen" || $slaves[$i].pornFameType == "hardcore anal">> $He impresses with $his ability to push $his anus to its limit. @@ -868,7 +868,7 @@ <<if $cheatMode == 1>>Painal Queen: (_oldPorn) to ($slaves[$i].pornTypePainal).<</if>> <<elseif $slaves[$i].pornTypePainal > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypePainal>><</if>> - <<set $slaves[$i].pornTypePainal = Math.clamp($slaves[$i].pornTypePainal-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypePainal = Math.clamp($slaves[$i].pornTypePainal-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Strugglefuck Queen: (_oldPorn) to ($slaves[$i].pornTypePainal).<</if>> <</if>> <<if $slaves[$i].sexualQuirk == "tease">> @@ -879,7 +879,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeTease>> <<set $slaves[$i].pornTypeTease += (_adjustedViewership/_viewerSoaking)-((_decayRate/10)*($pornStarTeases-1))>> - <<set $slaves[$i].pornTypeTease = Math.clamp($slaves[$i].pornTypeTease, 0, 100000)>> + <<set $slaves[$i].pornTypeTease = Math.clamp($slaves[$i].pornTypeTease, 0, 150000)>> <<if $slaves[$i].pornFocus == "tease" || $slaves[$i].pornFameType == "softcore">> $His tantalizes viewers with $his suggestive moves. @@ -894,7 +894,7 @@ <<if $cheatMode == 1>>Tease: (_oldPorn) to ($slaves[$i].pornTypeTease).<</if>> <<elseif $slaves[$i].pornTypeTease > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeTease>><</if>> - <<set $slaves[$i].pornTypeTease = Math.clamp($slaves[$i].pornTypeTease-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeTease = Math.clamp($slaves[$i].pornTypeTease-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Tease: (_oldPorn) to ($slaves[$i].pornTypeTease).<</if>> <</if>> <<if $slaves[$i].sexualQuirk == "romantic">> @@ -905,7 +905,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeRomantic>> <<set $slaves[$i].pornTypeRomantic += (_adjustedViewership/_viewerSoaking)-((_decayRate/10)*($pornStarRomantics-1))>> - <<set $slaves[$i].pornTypeRomantic = Math.clamp($slaves[$i].pornTypeRomantic, 0, 100000)>> + <<set $slaves[$i].pornTypeRomantic = Math.clamp($slaves[$i].pornTypeRomantic, 0, 150000)>> <<if $slaves[$i].pornFocus == "romantic" || $slaves[$i].pornFameType == "romantic">> $He draws viewers in with $his genuine pleasure. @@ -920,7 +920,7 @@ <<if $cheatMode == 1>>Romantic: (_oldPorn) to ($slaves[$i].pornTypeRomantic).<</if>> <<elseif $slaves[$i].pornTypeRomantic > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeRomantic>><</if>> - <<set $slaves[$i].pornTypeRomantic = Math.clamp($slaves[$i].pornTypeRomantic-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeRomantic = Math.clamp($slaves[$i].pornTypeRomantic-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Romantic: (_oldPorn) to ($slaves[$i].pornTypeRomantic).<</if>> <</if>> <<if $slaves[$i].sexualQuirk == "perverted">> @@ -931,7 +931,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypePervert>> <<set $slaves[$i].pornTypePervert += (_adjustedViewership/_viewerSoaking)-((_decayRate/10)*($pornStarPerverts-1))>> - <<set $slaves[$i].pornTypePervert = Math.clamp($slaves[$i].pornTypePervert, 0, 100000)>> + <<set $slaves[$i].pornTypePervert = Math.clamp($slaves[$i].pornTypePervert, 0, 150000)>> <<if $slaves[$i].pornFocus == "perverted" || $slaves[$i].pornFameType == "really perverted">> $His perverted tastes shock and allure viewers in ways they didn't even realize. @@ -946,7 +946,7 @@ <<if $cheatMode == 1>>Perverted: (_oldPorn) to ($slaves[$i].pornTypePervert).<</if>> <<elseif $slaves[$i].pornTypePervert > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypePervert>><</if>> - <<set $slaves[$i].pornTypePervert = Math.clamp($slaves[$i].pornTypePervert-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypePervert = Math.clamp($slaves[$i].pornTypePervert-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Perverted: (_oldPorn) to ($slaves[$i].pornTypePervert).<</if>> <</if>> <<if $slaves[$i].sexualQuirk == "caring">> @@ -957,7 +957,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeCaring>> <<set $slaves[$i].pornTypeCaring += (_adjustedViewership/_viewerSoaking)-((_decayRate/10)*($pornStarCarings-1))>> - <<set $slaves[$i].pornTypeCaring = Math.clamp($slaves[$i].pornTypeCaring, 0, 100000)>> + <<set $slaves[$i].pornTypeCaring = Math.clamp($slaves[$i].pornTypeCaring, 0, 150000)>> <<if $slaves[$i].pornFocus == "caring" || $slaves[$i].pornFameType == "voyeur">> $His sincere devotion to $his partner's pleasure draws in viewers with an interest in watching couples fuck. @@ -972,7 +972,7 @@ <<if $cheatMode == 1>>Caring: (_oldPorn) to ($slaves[$i].pornTypeCaring).<</if>> <<elseif $slaves[$i].pornTypeCaring > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeCaring>><</if>> - <<set $slaves[$i].pornTypeCaring = Math.clamp($slaves[$i].pornTypeCaring-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeCaring = Math.clamp($slaves[$i].pornTypeCaring-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Caring: (_oldPorn) to ($slaves[$i].pornTypeCaring).<</if>> <</if>> <<if $slaves[$i].sexualQuirk == "unflinching">> @@ -983,7 +983,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeUnflinching>> <<set $slaves[$i].pornTypeUnflinching += (_adjustedViewership/_viewerSoaking)-((_decayRate/10)*($pornStarUnflinchings-1))>> - <<set $slaves[$i].pornTypeUnflinching = Math.clamp($slaves[$i].pornTypeUnflinching, 0, 100000)>> + <<set $slaves[$i].pornTypeUnflinching = Math.clamp($slaves[$i].pornTypeUnflinching, 0, 150000)>> <<if $slaves[$i].pornFocus == "unflinching" || $slaves[$i].pornFameType == "unspeakable">> $His willingness to do anything catches the attention of those who enjoy acts that should never be mentioned to others. @@ -998,7 +998,7 @@ <<if $cheatMode == 1>>Unflinching: (_oldPorn) to ($slaves[$i].pornTypeUnflinching).<</if>> <<elseif $slaves[$i].pornTypeUnflinching > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeUnflinching>><</if>> - <<set $slaves[$i].pornTypeUnflinching = Math.clamp($slaves[$i].pornTypeUnflinching-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeUnflinching = Math.clamp($slaves[$i].pornTypeUnflinching-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Unflinching: (_oldPorn) to ($slaves[$i].pornTypeUnflinching).<</if>> <</if>> <<if $slaves[$i].sexualQuirk == "size queen">> @@ -1009,7 +1009,7 @@ <</if>> <<set _oldPorn = $slaves[$i].pornTypeSizeQueen>> <<set $slaves[$i].pornTypeSizeQueen += (_adjustedViewership/_viewerSoaking)-((_decayRate/10)*($pornStarSizeQueens-1))>> - <<set $slaves[$i].pornTypeSizeQueen = Math.clamp($slaves[$i].pornTypeSizeQueen, 0, 100000)>> + <<set $slaves[$i].pornTypeSizeQueen = Math.clamp($slaves[$i].pornTypeSizeQueen, 0, 150000)>> <<if $slaves[$i].pornFocus == "size queen" || $slaves[$i].pornFameType == "huge insertion">> $His intent on taking the largest things possible into her holes draws in viewers with an interest for huge insertions. @@ -1024,7 +1024,7 @@ <<if $cheatMode == 1>>Size Queen: (_oldPorn) to ($slaves[$i].pornTypeSizeQueen).<</if>> <<elseif $slaves[$i].pornTypeSizeQueen > 0>> <<if $cheatMode == 1>><<set _oldPorn = $slaves[$i].pornTypeSizeQueen>><</if>> - <<set $slaves[$i].pornTypeSizeQueen = Math.clamp($slaves[$i].pornTypeSizeQueen-(_decayRate*2), 0, 100000)>> + <<set $slaves[$i].pornTypeSizeQueen = Math.clamp($slaves[$i].pornTypeSizeQueen-(_decayRate*2), 0, 150000)>> <<if $cheatMode == 1>>Size Queen: (_oldPorn) to ($slaves[$i].pornTypeSizeQueen).<</if>> <</if>> @@ -1866,7 +1866,7 @@ <<set $slaves[$i].pornFame = $slaves[$i].pornTypeNeglectful>> <<set $slaves[$i].pornPrestigeDesc = "She is world famous for her career in slave pornography. Millions are intimately familiar with the sight of her denying herself pleasure.">> @@.green;$He has become world famous for $his career in $slaves[$i].pornFameType pornography!@@ Millions are now intimately familiar with the sight of $him denying $himself pleasure, so it is now extremely prestigious to own $him. - <<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing her pleasing a line of partners without cuming once">> + <<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing her pleasing a line of partners without cumming once">> <<set $trinkets.push(_desc)>> <<elseif $slaves[$i].pornTypeNeglectful < 40000>> <<set _failedStar = 1>> @@ -1969,7 +1969,7 @@ <<set $slaves[$i].pornFame = $slaves[$i].pornTypeSub>> <<set $slaves[$i].pornPrestigeDesc = "She is world famous for her career in slave pornography. Millions are intimately familiar with her submissiveness.">> @@.green;$He has become world famous for $his career in $slaves[$i].pornFameType pornography!@@ Millions are now intimately familiar with $his submissiveness, so it is now extremely prestigious to own $him. - <<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing her sumbmission">> + <<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing her submission">> <<set $trinkets.push(_desc)>> <<elseif $slaves[$i].pornTypeSub < 40000>> <<set _failedStar = 1>> diff --git a/src/pregmod/theBlackMarket.tw b/src/pregmod/theBlackMarket.tw index 9c22b6fdd07930d73b3c2dca599185eafda3c445..3c3ec7610672a3f5e88c062517b950664ca72fdc 100644 --- a/src/pregmod/theBlackMarket.tw +++ b/src/pregmod/theBlackMarket.tw @@ -134,60 +134,91 @@ Of all the wonders present, the thing that catches your eye the most is a shady <br>You appear to already possess all the societal based schematics he has to offer. <</if>> - /* - ** Special gating of NCS behind $minimumSlaveAge<16, this if and handling only is important while there are no other black market goods for sale. -- once we do have more than one, then this can probably be removed. - */ - <<if (($thisWeeksIllegalFSWares.length >= 1) && ($minimumSlaveAge > 15))>> - /* - ** discard the NCS. - */ - <<set _dump = $thisWeeksIllegalFSWares.delete("childhoodFertilityInducedNCS")>> - <</if>> - <br><br> - He gestures to a door in the back of the stall. "The good shit's back there<<if $thisWeeksIllegalFSWares.length > 1>>, here's a list: <<elseif $thisWeeksIllegalFSWares.length == 1>>, only one this week: <<else>>.<</if>>" - <<if $thisWeeksIllegalFSWares.length == 0>> - <br>You appear to already possess all the black market schematics he has to offer. - <</if>> + He gestures to a door in the back of the stall. "The good shit's back there<<if $thisWeeksIllegalFSWares.length > 1>>, here's a list: <<elseif $thisWeeksIllegalFSWares.length == 1>>, only one this week: <<else>>.<</if>>" <<if $thisWeeksIllegalFSWares.length >= 1>> - <dl> <<for _bim = 0; _bim < $thisWeeksIllegalFSWares.length; _bim++>> - <<if (($minimumSlaveAge <= 15) && ($thisWeeksIllegalFSWares[_bim] == "childhoodFertilityInducedNCS"))>> - <dt>@@.cyan;Childhood Fertility Induced NCS (Induced Neotenic Complex Syndrome or Syndrome X modified for fertility).@@</dt> - <dd> - <<if $minimumSlaveAge > 8>> - Illegal information for the Childhood Fertility @@.orange;Induced NCS@@ (genetic engineering and hormonal blend) research recipe.<br> - "I'm sorry, I can't sell this product to you, even if I wanted to," he says. "I have this technology, which if applied, would make slaves appear younger than the legal age of majority. I picked it up from an exotics dealer, who picked it up from some old world government research center. And yes, I know, this is a black market, and I would be happy to sell it to you, except, you see, too many of the wrong people know I have it, and while the knowledge isn't illegal, selling or using it is. See if I sell this to you, you'd start getting younger looking slaves, and those people would try to take us both down, and since I'm not the master of an arcology, I would probably end up enslaved, and I'm not interested in that. If only the laws had a lower minimum age for slaves, I could sell this to anyone interested." - While the minimum slave age is greater than 8, you cannot purchase this illegal technology for the Childhood Fertility @@.orange;Induced NCS@@ (genetic engineering and hormonal blend) research recipe.<br> - He notices your interest and lets you read the information [[Childhood Fertility Induced NCS|Encyclopedia][$encyclopedia = "Childhood Fertility Induced NCS"]]. - <<else>> - <<if $arcologies[0].FSYouthPreferentialist > 0>> - <<set _match = "Knowing your arcology, I think you could be happy with the results!">> - <<else>> - <<set _match = "I'm not sure this is a good match for your arcology's current society at this moment, but I'm sure you could have fun with it.">> - <</if>> - <<if ($pedo_mode)>> - <<set _toydolls = "If you like sexy little toy dolls, I mean biological ''@@.coral;lolis@@'' or ''@@.coral;shotas@@'' for life, then this is the one for you. I picked it up from an exotics dealer, who picked it up from some old world government research center.", _norefunds = "Remember, though, no money back on this. Technology like this doesn't exist anywhere else, your younger slaves will stay that way forever, and your older ones will slowly begin to regress towards that nice mid-childhood state. If you want to build yourself a cadre of ''@@.coral;preteen@@'' delights for yourself or your customers, then buy now!">> - <<else>> - <<set _toydolls = "This might be a little too shady or perverted for you. But, if you want your slaves to last longer, you know, look younger for longer, well this treatment can help. However it comes at a price, this treatment will eventually turn your slave girls younger and younger looking, until the point you might not want to use them as sex slaves because they'll appear as teenagers or even younger. I'm serious, your slaves treated with this treatment will eventually look like children! They won't be, really, but this is no fountain of perpetual youth, and to be fair, maybe none of this will be up your alley. If that's the case, I guess you could just sell them once they get too young looking, and possibly for a higher price than if they looked older. It's, at best, for possibly more discerning or eclectic tastes then you might have. I picked it up from an exotics dealer, who picked it up from some old world government research center.", _norefunds = "Remember, though, no money back on this. Technology like this doesn't exist anywhere else, your treated slaves will stay and become younger looking forever, and your older ones will slowly begin to regress towards a disturbingly young mid-childhood state. All those caveats aside, if this sounds like something you'd want, then buy now!">> - <</if>> - <<if $arcologies[0].childhoodFertilityInducedNCSResearch == 0>> - <<if $cash >= 135000>> - "_toydolls _match _norefunds"<br> - [[Purchase childhood fertility induced NCS|The Black Market][$cash -= 135000, $arcologies[0].childhoodFertilityInducedNCSResearch = 1, _dump = $merchantFSWares.delete("childFertilityInducedSyndromeX")]] //@@.yellowgreen;<<print cashFormat(135000)>>.@@//<br> - <<else>> - "_toydolls _match _norefunds Or, you know, come back with money."<br> - You cannot afford the asking price of @@.red;<<print cashFormat(135000)>>@@ for the Childhood Fertility @@.orange;Induced NCS@@ (genetic engineering and hormonal blend) research recipe.<br> - <</if>> - He notices your interest and lets you read the information [[Childhood Fertility Induced NCS|Encyclopedia][$encyclopedia = "Childhood Fertility Induced NCS"]]. - <<else>> - You already possess the Childhood Fertility @@.orange;Induced NCS@@ (genetic engineering and hormonal blend) research recipe.<br> - <<set _dump = $merchantIllegalWares.delete("childhoodFertilityInducedNCS")>> - <</if>> - <</if>> - </dd> + <br> + <<if $thisWeeksIllegalFSWares[_bim] == "childhoodFertilityInducedNCS">> + <<if $minimumSlaveAge <= 15>> + <dt>@@.cyan;Childhood Fertility Induced NCS (Induced Neotenic Complex Syndrome or Syndrome X modified for fertility).@@</dt> + <dd> + <<if $minimumSlaveAge > 8>> + Illegal information for the Childhood Fertility @@.orange;Induced NCS@@ (genetic engineering and hormonal blend) research recipe.<br> + "I'm sorry, I can't sell this product to you, even if I wanted to," he says. "I have this technology, which if applied, would make slaves appear younger than the legal age of majority. I picked it up from an exotics dealer, who picked it up from some old world government research center. And yes, I know, this is a black market, and I would be happy to sell it to you, except, you see, too many of the wrong people know I have it, and while the knowledge isn't illegal, selling or using it is. See if I sell this to you, you'd start getting younger looking slaves, and those people would try to take us both down, and since I'm not the master of an arcology, I would probably end up enslaved, and I'm not interested in that. If only the laws were more open about who could have sex with who, I could sell this to anyone interested." + Since the agreed upon minimum age in your Free City is greater than eight, it would draw way too much attention for you to make use of the research recipe for the Childhood Fertility @@.orange;Induced NCS@@ (genetic engineering and hormonal blend). + <br> + He notices your interest and lets you read the information [[Childhood Fertility Induced NCS|Encyclopedia][$encyclopedia = "Childhood Fertility Induced NCS"]]. + <<set _dump = $merchantIllegalWares.delete("childhoodFertilityInducedNCS")>> + <<else>> + <<if $arcologies[0].FSYouthPreferentialist > 0>> + <<set _match = "Knowing your arcology, I think you could be happy with the results!">> + <<else>> + <<set _match = "I'm not sure this is a good match for your arcology's current society at this moment, but I'm sure you could have fun with it.">> + <</if>> + <<if ($pedo_mode)>> + <<set _toydolls = "If you like sexy little toy dolls, I mean biological ''@@.coral;lolis@@'' or ''@@.coral;shotas@@'' for life, then this is the one for you. I picked it up from an exotics dealer, who picked it up from some old world government research center.", _norefunds = "Remember, though, no money back on this. Technology like this doesn't exist anywhere else, your younger slaves will stay that way forever, and your older ones will slowly begin to regress towards that nice mid-childhood state. If you want to build yourself a cadre of ''@@.coral;preteen@@'' delights for yourself or your customers, then buy now!">> + <<else>> + <<set _toydolls = "This might be a little too shady or perverted for you. But, if you want your slaves to last longer, you know, look younger for longer, well this treatment can help. However it comes at a price, this treatment will eventually turn your slave girls younger and younger looking, until the point you might not want to use them as sex slaves because they'll appear as teenagers or even younger. I'm serious, your slaves treated with this treatment will eventually look like children! They won't be, really, but this is no fountain of perpetual youth, and to be fair, maybe none of this will be up your alley. If that's the case, I guess you could just sell them once they get too young looking, and possibly for a higher price than if they looked older. It's, at best, for possibly more discerning or eclectic tastes then you might have. I picked it up from an exotics dealer, who picked it up from some old world government research center.", _norefunds = "Remember, though, no money back on this. Technology like this doesn't exist anywhere else, your treated slaves will stay and become younger looking forever, and your older ones will slowly begin to regress towards a disturbingly young mid-childhood state. All those caveats aside, if this sounds like something you'd want, then buy now!">> + <</if>> + <<if $arcologies[0].childhoodFertilityInducedNCSResearch == 0>> + <<if $cash >= 135000>> + "_toydolls _match _norefunds"<br> + [[Purchase childhood fertility induced NCS|The Black Market][$cash -= 135000, $arcologies[0].childhoodFertilityInducedNCSResearch = 1, _dump = $merchantFSWares.delete("childFertilityInducedSyndromeX")]] //@@.yellowgreen;<<print cashFormat(135000)>>.@@//<br> + <<else>> + "_toydolls _match _norefunds Or, you know, come back with money."<br> + You cannot afford the asking price of @@.red;<<print cashFormat(135000)>>@@ for the Childhood Fertility @@.orange;Induced NCS@@ (genetic engineering and hormonal blend) research recipe.<br> + <</if>> + He notices your interest and lets you read the information [[Childhood Fertility Induced NCS|Encyclopedia][$encyclopedia = "Childhood Fertility Induced NCS"]]. + <<else>> + You already possess the Childhood Fertility @@.orange;Induced NCS@@ (genetic engineering and hormonal blend) research recipe.<br> + <<set _dump = $merchantIllegalWares.delete("childhoodFertilityInducedNCS")>> + <</if>> + <</if>> + <<else>> + You have no interest in such a distasteful research. + <<set _dump = $merchantIllegalWares.delete("childhoodFertilityInducedNCS")>> + <</if>> + <</if>> + <<if $thisWeeksIllegalFSWares[_bm] == "UterineRestraintMesh">> + <<if $UterineRestraintMesh == 0>> + <<if $seePreg == 1>> + <<if $ImplantProductionUpgrade == 1>> + <<if $cash >= 20000>> + [[Purchase blueprints for a supportive uterine mesh|The Black Market][$cash -= 20000, $UterineRestraintMesh = 1, _dump = $merchantFSWares.delete("UterineRestraintMesh")]] //@@.yellowgreen;<<print cashFormat(20000)>>.@@// + <<else>> + You cannot afford the asking price of @@.red;<<print cashFormat(20000)>>@@ for a supportive uterine mesh. + <</if>> + <br> + "This is an interesting one... It's designed to prevent any sort of rupturing of the uterus, but, while that idea is great and all, it does jack shit to prevent leaks from elsewhere in the organ. The guy funding the research company was pissed when his slave bloated up like a cum-filled balloon and dropped dead, destroyed most of the development lab. Fortunately, he failed to ruin the best part of it - these blueprints. Now, you're probably wondering what good is something like this, but I've done business with a number of industrial slave farms, and they swear upon its ability to force a girl to carry far more children than physically possible, well, up until their wombs crushed their organs, that is. I supposed it'd work with anything solid, really, if you enjoy sticking things up into slave girls." + <<else>> + You lack the facilities needed to produce implants of this comlexity, so designs for a supportive uterine mesh are currently unobtainable. + <</if>> + <<else>> + You have no interest in research to support pregnancy. + <<set _dump = $merchantIllegalWares.delete("UterineRestraintMesh")>> + <</if>> + <<else>> + You already possess blueprints for a supportive uterine mesh. + <<set _dump = $merchantFSWares.delete("UterineRestraintMesh")>> + <</if>> + <</if>> + <<if $thisWeeksIllegalFSWares[_bm] == "RapidCellGrowthFormula">> + <<if $RapidCellGrowthFormula == 0>> + <<if $cash >= 70000>> + [[Purchase formulas for elasticity increasing injections|The Black Market][$cash -= 70000, $RapidCellGrowthFormula = 1, _dump = $merchantFSWares.delete("RapidCellGrowthFormula")]] //@@.yellowgreen;<<print cashFormat(70000)>>.@@// + <<else>> + You cannot afford the asking price of @@.red;<<print cashFormat(70000)>>@@ for elasticity increasing injections. + <</if>> + <br> + "These injections will loosen up any skin, muscle, organ or whatever living flesh you inject them in to. I'm not entirely sure how they work, something about increased cell growth or something. Probably not the safest thing to use, what with it pretty much being cancer in a vial. From what I've gathered, they were originally being develop to use with fillable breast implants. Some rich investor got his rocks off from BE and decided to make his dream a reality. Worked great too, save for the fact that the breasts didn't shrink down when the implant was emptied. Yep, she was left with a big ol' pair of floppy tits after being stretched so much. My take is, if you want to get big, fast, this is the drug for you, but only if you don't care about ever going back." + <<else>> + You already possess formulas for elasticity increasing injections. + <<set _dump = $merchantFSWares.delete("RapidCellGrowthFormula")>> + <</if>> <</if>> <</for>> - </dl> + <<else>> + <br>You appear to already possess all the black market schematics he has to offer. <</if>> <</if>> diff --git a/src/pregmod/widgets/seBirthWidgets.tw b/src/pregmod/widgets/seBirthWidgets.tw index bbdb777888c9017544687f22326b98286c10bea5..778b141185b428d06943fd35bfd396498e3c3ca3 100644 --- a/src/pregmod/widgets/seBirthWidgets.tw +++ b/src/pregmod/widgets/seBirthWidgets.tw @@ -331,7 +331,6 @@ <<set WombFlush($slaves[$i])>> /* cleaning rest of superfetation pregnancy if no tech for safe partial birth */ <</if>> <</if>> -<<set _curStill = $slaves[$i].curStillBirth>> <<set _afterSize = WombGetVolume($slaves[$i])>> <<set $diffSize = _beforeSize / (1 + _afterSize)>> /* 1 used to avoid divide by zero error.*/ @@ -342,6 +341,7 @@ <<widget "seBirthMainScene">> <<set _curBabies = $slaves[$i].curBabies.length>> +<<set _curStill = $slaves[$i].curStillBirth>> <<set _getFather = $slaves.find(function(s) { return s.ID == $slaves[$i].pregSource; })>> <<if def _getFather>> diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw index a677cece8a7ea6d0d84efa2fc6954dc82af993d4..ae8a39ebeb2b615ff2bc93aaf8c546852421515b 100644 --- a/src/uncategorized/BackwardsCompatibility.tw +++ b/src/uncategorized/BackwardsCompatibility.tw @@ -205,7 +205,10 @@ <<if def $vaginaTotal>> <<unset $vaginaTotal>> <</if>> - +<<set $enduringTrust = Number($enduringTrust) || 0>> +<<set $enduringDevotion = Number($enduringDevotion) || 0>> +<<set $averageTrust = Number($averageTrust) || 0>> +<<set $averageDevotion = Number($averageDevotion) || 0>> /* pregmod stuff */ @@ -582,8 +585,11 @@ <<if ndef $seePreg>> <<set $seePreg = 1>> <</if>> -<<if ndef $dangerousPregancy>> - <<set $dangerousPregancy = 1>> +<<if ndef $dangerousPregnancy>> + <<set $dangerousPregnancy = 1>> +<</if>> +<<if def $dangerousPregancy>> + <<unset $dangerousPregancy>> <</if>> <<if ndef $retainCareer>> <<set $retainCareer = 1>> @@ -963,10 +969,11 @@ <<set $merchantFSWares = ["GenderRadicalistResearch", "TransformationFetishistResearch", "AssetExpansionistResearch", "SlimnessEnthusiastResearch", "YouthPreferentialistResearch", "HedonisticDecadenceResearch"]>> <</if>> <<if ndef $merchantIllegalWares>> - <<set $merchantIllegalWares = ["childhoodFertilityInducedNCS"]>> + <<set $merchantIllegalWares = ["childhoodFertilityInducedNCS", "UterineRestraintMesh", "RapidCellGrowthFormula"]>> <<elseif $merchantIllegalWares.length == 0>> - <<set _dump = $merchantIllegalWares.delete("childhoodFertilityInducedNCS")>> <<set $merchantIllegalWares.push("childhoodFertilityInducedNCS")>> + <<set $merchantIllegalWares.push("UterineRestraintMesh")>> + <<set $merchantIllegalWares.push("RapidCellGrowthFormula")>> <</if>> <<if ndef $arcologies[0].childhoodFertilityInducedNCSResearch>> <<set $arcologies[0].childhoodFertilityInducedNCSResearch = 0>> @@ -2155,6 +2162,16 @@ Setting missing global variables: <<set $youngerOvaries = 0>> <</if>> +<<if ndef $pregInventor>> + <<set $pregInventor = 0>> +<</if>> +<<if ndef $pregInventorID>> + <<set $pregInventorID = 0>> +<</if>> +<<if ndef $pregInventions>> + <<set $pregInventions = 0>> +<</if>> + /* Job Fulfillment Center */ <<if ndef $JFCOrder>> <<set $JFCOrder = 0>> diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw index 60d1ed4d58171d8f6fd9431c78671a4cb5f3c5f9..b125f8a4741dc9e07af77189194903a30bc9159a 100644 --- a/src/uncategorized/RESS.tw +++ b/src/uncategorized/RESS.tw @@ -3998,7 +3998,7 @@ $He does $his very best to get through the inspection without disgrace, hugging <<case "objectifying visit">> -At appropriate intervals during the day $assistantName directs an unoccupied slave to visit your office, and to ensure all your needs are currently being met. With such a vague task set before them, the slaves who enter your domain in such a way often find themselves used in a multitude of refreshingly novel ways. At this particular moment, <<EventNameLink $activeSlave>> comes through the door of your office and obediently +At appropriate intervals during the day $assistantName directs an unoccupied slave to visit your office to ensure all your needs are currently being met. With such a vague task set before them, the slaves who enter your domain in such a way often find themselves used in a multitude of refreshingly novel ways. At this particular moment, <<EventNameLink $activeSlave>> comes through the door of your office and obediently <<if $activeSlave.belly >= 300000>> settles $himself <<else>> diff --git a/src/uncategorized/REresistantmotherdaughter.tw b/src/uncategorized/REresistantmotherdaughter.tw index e316905cdb106d34be79cdceda7147750ce10e35..1a04f537c217be55681c1c9740fd01a370a63f23 100644 --- a/src/uncategorized/REresistantmotherdaughter.tw +++ b/src/uncategorized/REresistantmotherdaughter.tw @@ -36,7 +36,7 @@ $slaves[$i].slaveName and her daughter are both having trouble getting acclimate <</link>> <br><<link "Make an example of the mother">> <<replace "#result">> - You give them orders of devastating simplicity: You are going to assrape $slaves[$i].slaveName and if her daughter offers even the most token of resistance, you'll punish $slaves[$i].slaveName. They're stunned, but you shake them out of their shock by grabbing $slaves[$i].slaveName by the arm <<if $PC.dick == 0>>,donning a strap-on<</if>>and shoving her over your desk. $slaves[$j].slaveName flinches visibly as you enter her mother's ass in one brutal stroke, for which you stain her mother's asscheeks a rosy red with a torrent of harsh spanks. $slaves[$i].slaveName takes the rough anal pounding with only quiet sobbing and the occasional whimper of pain, but her daughter can't bear to see $slaves[$i].slaveName in such duress and breaks her shortlived silence to beg for mercy. When you step away from $slaves[$i].slaveName, $slaves[$j].slaveName lets out a sigh of relief, but her expression soon turns to horror and revulsion when you return to mount her mother with a lash in hand. + You give them orders of devastating simplicity: You are going to assrape $slaves[$i].slaveName and if her daughter offers even the most token of resistance, you'll punish $slaves[$i].slaveName. They're stunned, but you shake them out of their shock by grabbing $slaves[$i].slaveName by the arm<<if $PC.dick == 0>>,donning a strap-on<</if>> and shoving her over your desk. $slaves[$j].slaveName flinches visibly as you enter her mother's ass in one brutal stroke, for which you stain her mother's asscheeks a rosy red with a torrent of harsh spanks. $slaves[$i].slaveName takes the rough anal pounding with only quiet sobbing and the occasional whimper of pain, but her daughter can't bear to see $slaves[$i].slaveName in such duress and breaks her shortlived silence to beg for mercy. When you step away from $slaves[$i].slaveName, $slaves[$j].slaveName lets out a sigh of relief, but her expression soon turns to horror and revulsion when you return to mount her mother with a lash in hand. <br><br> When you eventually finish your merciless assrape of $slaves[$i].slaveName, her body is covered in bruises, marks, and handprints. A testament to $slaves[$j].slaveName's inability to keep her silence as you brutalized her mother. You leave your office wordlessly to attend to other matters, while behind you $slaves[$j].slaveName gazes forlornly at the gibbering mess you have reduced her mother to. Your severe punishment of her mother has encouraged $slaves[$j].slaveName to @@.gold;fear you@@. $slaves[$i].slaveName has been fucked into @@.hotpink;submission@@ but your savage treatment has caused her to @@.red;hate buttsex.@@ diff --git a/src/uncategorized/fsDevelopments.tw b/src/uncategorized/fsDevelopments.tw index cac395d9ae548ed68df0b324b94fdb6941e80f4a..c20730809354c836f809e49a3051ec8eb34add82 100644 --- a/src/uncategorized/fsDevelopments.tw +++ b/src/uncategorized/fsDevelopments.tw @@ -1164,7 +1164,7 @@ <<if $arcologies[0].FSHedonisticDecadenceDecoration < $FSLockinLevel>> <<if $arcologies[0].FSHedonisticDecadence == $arcologies[0].FSHedonisticDecadenceDecoration>> @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ -<<elseif $arcologies[0].FSHedonisticSMR == 1>> +<<elseif $arcologies[0].FSHedonisticDecadenceSMR == 1>> <<set $arcologies[0].FSHedonisticDecadence += 0.1*$FSSingleSlaveRep>> <</if>> <</if>> diff --git a/src/uncategorized/generateNewSlave.tw b/src/uncategorized/generateNewSlave.tw index 7e5e2fd2f80615b7f4c35091bc5457d98ee61931..f77773d4deee5b90ff13d5d21f8f48481ccd7915 100644 --- a/src/uncategorized/generateNewSlave.tw +++ b/src/uncategorized/generateNewSlave.tw @@ -1,25 +1,3 @@ :: Generate New Slave [nobr] -<<if (random(0,99) < $seeDicks)>> - <<include "Generate XY Slave">> -<<elseif ($seeDicks > 0)>> - <<if ($arcologies[0].FSGenderFundamentalistSMR == 1 || $arcologies[0].FSRepopulationFocusSMR == 1)>> - <<set _femaleSlaveGen = 90>> - <<elseif ($arcologies[0].FSGenderRadicalist != "unset")>> - <<set _femaleSlaveGen = 50>> - <<else>> - <<set _femaleSlaveGen = 80>> - <</if>> - <<if (random(1,100) > _femaleSlaveGen) && (random(0,99) < $seeDicks)>> - <<include "Generate XY Slave">> - <<else>> - <<include "Generate XX Slave">> - <</if>> -<<else>> - <<include "Generate XX Slave">> -<</if>> -/* Superfetation as rare genetic disorder 1 from 100, not active for now. -<<if (random(0,99) <= 1)>> - <<set $activeSlave.superfetation = 1>> -<</if>> -*/ +<<run GenerateNewSlave()>> diff --git a/src/uncategorized/generateXXSlave.tw b/src/uncategorized/generateXXSlave.tw index 30317d22116873d87fcf212205b53bef8e613e6c..a9e3ec9200c3b87a2c11a5ea380dfa78697061f0 100644 --- a/src/uncategorized/generateXXSlave.tw +++ b/src/uncategorized/generateXXSlave.tw @@ -1,540 +1,3 @@ :: Generate XX Slave [nobr] -<<BaseSlave>> -/*missed variables - getting tired of this shit */ -<<set WombInit($activeSlave)>> -<<set $activeSlave.vaginaLube = 1, $activeSlave.ovaries = 1, $activeSlave.canRecruit = 1>> - -<<run generateAge($activeSlave)>> - -<<if $activeSlave.physicalAge < 6>> - <<set $activeSlave.teeth = "baby">> -<<elseif $activeSlave.physicalAge < 12>> - <<set $activeSlave.teeth = "mixed">> -<</if>> - -<<if $activeSlave.ovaries == 1>> - <<if $activeSlave.physicalAge >= $activeSlave.pubertyAgeXX>> - <<set $activeSlave.pubertyXX = 1>> - <<else>> - <<set $activeSlave.pubertyXX = 0>> - <</if>> -<<else>> - <<set $activeSlave.pubertyXX = 0>> -<</if>> -<<set $activeSlave.pubertyXY = 0>> - -<<set $activeSlave.ID = $IDNumber++>> -<<set $activeSlave.weekAcquired = $week>> - -<<set _gaussianPair = gaussianPair()>> -<<set $activeSlave.intelligence = Intelligence.random()>> -<<if _gaussianPair[0] < _gaussianPair[1] + $activeSlave.intelligence/29 - 0.35>> /* 40.23% chance if intelligence is 0, 99.26% chance if intelligence is 100 */ - <<set $activeSlave.intelligenceImplant = 15>> - <<if random(15,150) < $activeSlave.intelligence>> - <<set $activeSlave.intelligenceImplant = 30>> - <</if>> -<</if>> - -<<if $AgePenalty == 1>> - <<if ($activeSlave.actualAge < 16)>> - <<set $activeSlave.career = setup.veryYoungCareers.random()>> - <<elseif ($activeSlave.actualAge <= 24)>> - <<set $activeSlave.career = setup.youngCareers.random()>> - <<elseif ($activeSlave.intelligenceImplant >= 15)>> - <<set $activeSlave.career = setup.educatedCareers.random()>> - <<else>> - <<set $activeSlave.career = setup.uneducatedCareers.random()>> - <</if>> -<<else>> - <<if ($activeSlave.actualAge < 16)>> - <<set $activeSlave.career = setup.veryYoungCareers.random()>> - <<elseif ($activeSlave.intelligenceImplant >= 15)>> - <<set $activeSlave.career = setup.educatedCareers.random()>> - <<elseif ($activeSlave.actualAge <= 24)>> - <<set $activeSlave.career = setup.youngCareers.random()>> - <<else>> - <<set $activeSlave.career = setup.uneducatedCareers.random()>> - <</if>> -<</if>> - -<<set $activeSlave.vaginalSkill = random(0,15)>> -<<set $activeSlave.analSkill = random(0,15)>> -<<set $activeSlave.oralSkill = random(0,15)>> -<<set $activeSlave.entertainSkill = random(0,15)>> -<<set $activeSlave.whoreSkill = random(0,15)>> - -<<set $activeSlave.energy = random(1,85)>> -<<run randomizeAttraction($activeSlave)>> -<<set $activeSlave.fetishStrength = random(0,90)>> -<<set $activeSlave.fetish = either("none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "submissive", "submissive", "cumslut", "humiliation", "humiliation", "buttslut", "boobs", "pregnancy", "dom", "sadist", "masochist")>> - -<<set $activeSlave.behavioralFlaw = either("none", "none", "none", "arrogant", "bitchy", "odd", "hates men", "hates women", "hates women", "anorexic", "gluttonous", "devout", "liberated")>> -<<if ($activeSlave.behavioralFlaw == "devout")>> - <<set $activeSlave.sexualFlaw = either("none", "repressed", "shamefast", "apathetic", "crude", "judgemental")>> -<<else>> - <<set $activeSlave.sexualFlaw = either("none", "none", "none", "none", "hates oral", "hates anal", "hates penetration", "repressed", "idealistic", "shamefast", "apathetic", "crude", "judgemental")>> -<</if>> -<<if ($activeSlave.behavioralFlaw == "none") && random(1,10) == 1>> - <<set $activeSlave.behavioralQuirk = either("confident", "cutting", "funny", "adores women", "adores men", "fitness", "insecure", "sinful", "advocate")>> -<</if>> -<<if ($activeSlave.sexualFlaw == "none") && random(1,10) == 1>> - <<set $activeSlave.sexualQuirk = either("gagfuck queen", "painal queen", "strugglefuck queen", "tease", "romantic", "perverted", "caring", "unflinching", "size queen")>> -<</if>> - -<<set $activeSlave.health = random(-50,50)>> - -<<set $activeSlave.devotion = random(-90,-60)>> -<<set $activeSlave.trust = random(-45,-25)>> - -/% Begin height replacement section. %/ -/% Since we use nationality for height effects we need to initialize it now instead of later on like in vanilla Free Cities. %/ -<<if $fixedRace == 0>> - <<if $fixedNationality == 0>> - <<set $activeSlave.nationality = hashChoice($nationalities)>> - <<else>> - <<set $activeSlave.nationality = $fixedNationality>> - <<set $fixedNationality = 0>> - <</if>> - <<run nationalityToRace($activeSlave)>> - /* Corporate slavegen with race selection */ - <<if passage() == "Corporate Market" && ($captureUpgradeRace != "unselected") && ($captureUpgradeRace != "none")>> - <<if $captureUpgradeRace == "mixed race">> - <<set $activeSlave.race = "mixed race">> - <<else>> - <<set _capUpgradeCheck = setup[$captureUpgradeRace.toLowerCase().replace(/[ -]/g, '')+'Nationalities']>> - <<set _capUpgradeNationalities = {}>> - <<set _keys = Object.keys(_capUpgradeCheck)>> - <<for _u = 0; _u < _keys.length; _u++>> - <<set _capNation = _keys[_u]>> - <<if _capNation in $nationalities>> - <<set _capUpgradeNationalities[_capNation] = _capUpgradeCheck[_capNation]>> - <</if>> - <</for>> - <<if Object.keys(_capUpgradeNationalities).length > 0>> - <<set $activeSlave.nationality = hashChoice(_capUpgradeNationalities), $activeSlave.race = $captureUpgradeRace>> - <<else>> - <<set $activeSlave.nationality = hashChoice(_capUpgradeCheck), $activeSlave.race = $captureUpgradeRace>> - <</if>> - <</if>> - <<if $activeSlave.race != $captureUpgradeRace>> - <<set $activeSlave.race = $captureUpgradeRace>> - <</if>> - <</if>> - /*end Corporate slavegen with race selection */ -<<else>> - <<switch $fixedRace>> - <<case "white">> - <<set $activeSlave.nationality = hashChoice(setup.whiteNationalities)>> - <<case "asian">> - <<set $activeSlave.nationality = hashChoice(setup.asianNationalities)>> - <<case "latina">> - <<set $activeSlave.nationality = hashChoice(setup.latinaNationalities)>> - <<case "black">> - <<set $activeSlave.nationality = hashChoice(setup.blackNationalities)>> - <<case "pacific islander">> - <<set $activeSlave.nationality = hashChoice(setup.pacificislanderNationalities)>> - <<case "southern european">> - <<set $activeSlave.nationality = hashChoice(setup.southerneuropeanNationalities)>> - <<case "amerindian">> - <<set $activeSlave.nationality = hashChoice(setup.amerindianNationalities)>> - <<case "semitic">> - <<set $activeSlave.nationality = hashChoice(setup.semiticNationalities)>> - <<case "middle eastern">> - <<set $activeSlave.nationality = hashChoice(setup.middleeasternNationalities)>> - <<case "indo-aryan">> - <<set $activeSlave.nationality = hashChoice(setup.indoaryanNationalities)>> - <<case "malay">> - <<set $activeSlave.nationality = hashChoice(setup.malayNationalities)>> - <<default>> - <<set $activeSlave.nationality = hashChoice($nationalities)>> - <</switch>> - <<set $activeSlave.race = $fixedRace>> - <<set $fixedRace = 0>> -<</if>> -<<run nationalityToName($activeSlave)>> -<<run nationalityToAccent($activeSlave)>> - -<<set $activeSlave.height = Math.round(Height.random($activeSlave))>> - -<<if $activeSlave.height >= Height.mean($activeSlave) * 170/162.5>> - <<set $activeSlave.hips = either(-1, 0, 0, 1, 1, 2, 2)>> - <<set $activeSlave.shoulders = either(-1, -1, 0, 0, 0, 1)>> -<<else>> - <<set $activeSlave.hips = either(-1, 0, 0, 0, 1, 1, 2)>> - <<set $activeSlave.shoulders = either(-2, -1, -1, 0, 0, 1)>> -<</if>> -/% End height replacement section. %/ - -<<set $activeSlave.weight = random(-100,180)>> -<<if ($activeSlave.weight < -30)>> - <<set $activeSlave.waist = random(-55,0)>> -<<elseif $activeSlave.physicalAge < 13>> - <<set $activeSlave.waist = random(-25,25)>> -<<elseif ($activeSlave.weight <= 30)>> - <<set $activeSlave.waist = random(-45,45)>> -<<elseif ($activeSlave.weight <= 160)>> - <<set $activeSlave.waist = random(0,55)>> -<<else>> - <<set $activeSlave.waist = random(50,100)>> -<</if>> - -<<if ($activeSlave.physicalAge > random(0,100))>> - <<set $activeSlave.eyes = -1>> -<</if>> -<<if ($activeSlave.physicalAge > random(30,100))>> - <<set $activeSlave.hears = -1>> -<</if>> - - -<<if ($activeSlave.intelligenceImplant >= 15 || $activeSlave.intelligence > 95) && ($activeSlave.accent >= 3) && ($activeSlave.intelligence) > random(0,100)>> - <<set $activeSlave.accent -= 1>> -<</if>> - -<<set _femaleCrookedTeethGen = $activeSlave.intelligence+$activeSlave.intelligenceImplant>> -<<if "American" == $activeSlave.nationality>> - <<set _femaleCrookedTeethGen += 20>> -<<elseif ["Andorran", "Antiguan", "Argentinian", "Aruban", "Australian", "Austrian", "Bahamian", "Bahraini", "Barbadian", "Belarusian", "Belgian", "Bermudian", "Brazilian", "British", "Bruneian", "Bulgarian", "Canadian", "Catalan", "Chilean", "a Cook Islander", "Croatian", "Czech", "Cypriot", "Danish", "Dutch", "Emirati", "Estonian", "Finnish", "French", "German", "Greek", "Greenlandic", "Guamanian", "Hungarian", "Icelandic", "Irish", "Israeli", "Italian", "Japanese", "Kazakh", "Korean", "Kuwaiti", "Latvian", "a Liechtensteiner", "Lithuanian", "Luxembourgian", "Malaysian", "Maltese", "Mauritian", "Monégasque", "Montenegrin", "New Caledonian", "a New Zealander", "Niuean", "Norwegian", "Omani", "Palauan", "Panamanian", "Polish", "Portuguese", "Puerto Rican", "Qatari", "Romanian", "Russian", "Sammarinese", "Saudi", "Seychellois", "Singaporean", "Slovak", "Slovene", "Spanish", "Swedish", "Swiss", "Taiwanese", "Trinidadian", "Uruguayan", "Vatican"].includes($activeSlave.nationality)>> -<<else>> - <<set _femaleCrookedTeethGen -= 20>> -<</if>> -<<if random(0,_femaleCrookedTeethGen) <= 15 && $activeSlave.physicalAge >= 12>> - <<set $activeSlave.teeth = "crooked">> -<</if>> - -<<switch $activeSlave.race>> -<<case "black">> - <<set $activeSlave.butt = either(1, 2, 2, 3, 3, 4, 4)>> - <<set $activeSlave.boobs = BoobGenerator.rollBreast(150)>> - <<set $activeSlave.lips = random(5,30)>> - <<set $activeSlave.skin = either("black", "dark brown", "brown")>> - <<set $activeSlave.hColor = either("black", "black", "black", "brown")>> - <<set $activeSlave.hStyle = either("neat", "crinkled")>> -<<case "white">> - <<set $activeSlave.butt = either(1, 2, 2, 3, 3, 4)>> - <<set $activeSlave.boobs = BoobGenerator.rollBreast(50)>> - <<set $activeSlave.lips = random(5,25)>> - <<if $activeSlave.nationality == "German">> - <<set $activeSlave.skin = either("pale", "light", "fair")>> - <<set $activeSlave.eyeColor = either("blue", "blue", "blue", "brown", "green")>> - <<set $activeSlave.hColor = either("black", "blonde", "blonde", "blonde", "red", "brown")>> - <<elseif $activeSlave.nationality == "Icelandic">> - <<set $activeSlave.skin = either("pale", "pale", "light", "fair")>> - <<set $activeSlave.eyeColor = either("blue", "blue", "blue", "brown", "green")>> - <<set $activeSlave.hColor = either("black", "blonde", "blonde", "blonde", "red", "brown")>> - <<elseif $activeSlave.nationality == "Irish">> - <<set $activeSlave.skin = either("pale", "pale", "light", "fair")>> - <<set $activeSlave.eyeColor = either("blue", "brown", "green", "green", "green")>> - <<set $activeSlave.hColor = either("black", "blonde", "red", "red", "red", "brown")>> - <<elseif $activeSlave.nationality == "Scottish">> - <<set $activeSlave.skin = either("pale", "fair", "light", "fair")>> - <<set $activeSlave.eyeColor = either("blue", "brown", "brown", "green", "green", "green")>> - <<set $activeSlave.hColor = either("black", "black", "blonde", "red", "red", "red", "brown")>> - <<else>> - <<set $activeSlave.skin = either("pale", "light", "fair")>> - <<set $activeSlave.eyeColor = either("blue", "brown", "green")>> - <<set $activeSlave.hColor = either("black", "blonde", "red", "brown")>> - <</if>> - <<set $activeSlave.hStyle = "neat">> -<<case "latina">> - <<set $activeSlave.butt = either(1, 2, 2, 3, 3, 4)>> - <<set $activeSlave.boobs = BoobGenerator.rollBreast(0)>> - <<set $activeSlave.lips = random(5,25)>> - <<set $activeSlave.skin = either("light olive", "brown", "dark brown", "tanned", "dark olive")>> - <<set $activeSlave.hColor = either("black", "black", "brown", "brown")>> - <<set $activeSlave.hStyle = "neat">> -<<case "indo-aryan" "malay" "pacific islander" "amerindian">> - <<set $activeSlave.butt = either(1, 2, 2, 3, 3)>> - <<set $activeSlave.boobs = BoobGenerator.rollBreast(0)>> - <<set $activeSlave.lips = random(5,25)>> - <<set $activeSlave.skin = either("dark", "light")>> - <<set $activeSlave.hColor = either("black")>> - <<set $activeSlave.hStyle = "neat">> -<<case "asian">> - <<set $activeSlave.butt = either(1, 2, 2, 3, 3)>> - <<set $activeSlave.boobs = BoobGenerator.rollBreast(-100)>> - <<set $activeSlave.lips = random(5,25)>> - <<set $activeSlave.skin = either("light olive", "dark olive", "light")>> - <<set $activeSlave.hColor = either("black")>> - <<set $activeSlave.hStyle = "neat">> -<<case "middle eastern" "semitic" "southern european">> - <<set $activeSlave.butt = either(1, 2, 2, 3, 3)>> - <<set $activeSlave.boobs = BoobGenerator.rollBreast(0)>> - <<set $activeSlave.lips = random(5,25)>> - <<set $activeSlave.skin = either("fair", "light olive", "tanned", "light")>> - <<set $activeSlave.hColor = either("black")>> - <<set $activeSlave.hStyle = "neat">> -<<default>> - <<set $activeSlave.butt = either(1, 2, 2, 3, 3, 4)>> - <<set $activeSlave.boobs = BoobGenerator.rollBreast(0)>> - <<set $activeSlave.lips = random(5,25)>> - <<set $activeSlave.skin = either("pale", "dark", "light")>> - <<set $activeSlave.hColor = either("black", "black", "black", "black", "brown", "brown", "blonde", "red")>> - <<set $activeSlave.hStyle = "neat">> -<</switch>> -<<if ($activeSlave.skin == "pale") || ($activeSlave.skin == "fair")>> - <<if random(1,4) == 1>> - <<set $activeSlave.markings = either("freckles", "freckles", "freckles", "heavily freckled", "beauty mark", "beauty mark", "birthmark", "birthmark")>> - <</if>> -<<elseif random(1,8) == 1>> - <<set $activeSlave.markings = either("beauty mark", "birthmark")>> -<</if>> - -<<set $activeSlave.origRace = $activeSlave.race>> -<<set $activeSlave.origEye = $activeSlave.eyeColor>> -<<set $activeSlave.origHColor = $activeSlave.hColor>> -<<set $activeSlave.origSkin = $activeSlave.skin>> -<<set $activeSlave.pubicHColor = $activeSlave.hColor>> -<<set $activeSlave.pubicHStyle = either("hairless", "bald", "bald", "waxed", "waxed", "waxed", "waxed", "waxed", "waxed", "in a strip", "in a strip", "in a strip", "in a strip", "in a strip", "neat", "neat", "neat", "neat", "neat", "bushy in the front and neat in the rear", "bushy in the front and neat in the rear", "bushy in the front and neat in the rear", "bushy in the front and neat in the rear", "bushy", "bushy", "bushy", "bushy", "bushy", "very bushy", "very bushy")>> -<<set $activeSlave.underArmHColor = $activeSlave.hColor>> -<<set $activeSlave.underArmHStyle = either("hairless", "bald", "bald", "waxed", "waxed", "waxed", "waxed", "shaved", "shaved", "shaved", "shaved", "shaved", "neat", "neat", "neat", "neat", "neat", "bushy", "bushy", "bushy")>> -<<if ($activeSlave.pubicHStyle == "hairless" || $activeSlave.underArmHStyle == "hairless") && random(1,100) > 40>> - <<set $activeSlave.pubicHStyle = "hairless", $activeSlave.underArmHStyle = "hairless">> -<</if>> -<<if ($activeSlave.hColor == "blonde" && random(1,20) > 17)>> - <<set $activeSlave.eyebrowHColor = either("brown", "brown", "brown", "brown", "black")>> - <<set $activeSlave.override_Brow_H_Color = 1>> -<<else>> - <<set $activeSlave.eyebrowHColor = $activeSlave.hColor>> -<</if>> -<<set $activeSlave.eyebrowHStyle = either("bald", "shaved", "shaved", "straight", "straight", "straight", "straight", "straight", "straight", "rounded", "rounded", "rounded", "rounded", "rounded", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "slanted inwards", "slanted inwards", "slanted outwards", "slanted outwards", "high-arched", "high-arched", "high-arched", "elongated", "elongated", "elongated", "shortened", "shortened", "shortened", "curved", "curved", "curved", "curved", "curved", "curved", "curved")>> -<<set $activeSlave.eyebrowFullness = either("pencil-thin", "pencil-thin", "thin", "thin", "thin", "threaded", "threaded", "threaded", "threaded", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "tapered", "tapered", "tapered", "tapered", "thick", "thick", "thick", "bushy", "bushy")>> - -/*LM*/ -<<if ($activeSlave.physicalAge <= 10)>> - <<set $activeSlave.boobs = either(100)>> -<<elseif ($activeSlave.physicalAge == 11)>> - <<set $activeSlave.boobs = either(100, 100, 150, 150, 150, 300)>> -<<elseif ($activeSlave.physicalAge == 12)>> - <<set $activeSlave.boobs = either(100, 100, 150, 150, 150, 200, 200, 300)>> -<<elseif ($activeSlave.physicalAge == 13)>> - <<set $activeSlave.boobs = either(100, 150, 200, 200, 300, 300, 300, 400)>> -<<elseif ($activeSlave.physicalAge == 14)>> - <<set $activeSlave.boobs = either(100 ,150, 200, 300, 300, 300, 350, 400, 400)>> -<<elseif ($activeSlave.physicalAge == 15)>> - <<set $activeSlave.boobs = either(150 ,200, 300, 300, 300, 350, 350, 350, 400, 400, 450, 450)>> -<</if>> - -<<if ($activeSlave.physicalAge <= 11)>> - <<set $activeSlave.butt = either(1, 1, 1, 1, 1, 1, 1)>> -<<elseif ($activeSlave.physicalAge <= 12)>> - <<set $activeSlave.butt = either(1, 1, 1, 1, 1, 2, 2)>> -<<elseif ($activeSlave.physicalAge <= 13)>> - <<set $activeSlave.butt = either(1, 1, 1, 1, 2, 2, 2)>> -<<elseif ($activeSlave.physicalAge <= 14)>> - <<set $activeSlave.butt = either(1, 1, 1, 2, 2, 2, 3)>> -<<elseif ($activeSlave.physicalAge <= 15)>> - <<set $activeSlave.butt = either(1, 1, 2, 2, 2, 2, 3)>> -<</if>> -/*end LM*/ - -<<if ($weightAffectsAssets != 0)>> - <<if $activeSlave.weight < -10 && $activeSlave.butt > 1>> - <<set $activeSlave.butt -= 1>> - <<elseif $activeSlave.weight > 100 && $activeSlave.butt < 6>> - <<set $activeSlave.butt += random(1,2)>> - <<elseif $activeSlave.weight > 10 && $activeSlave.butt < 4>> - <<set $activeSlave.butt += 1>> - <</if>> - - <<if $activeSlave.weight < -10 && $activeSlave.boobs > 200>> - <<set $activeSlave.boobs -= 100>> - <<elseif $activeSlave.weight > 190 && $activeSlave.boobs < 3000>> - <<set $activeSlave.boobs += (random(3,8)*100)>> - <<elseif $activeSlave.weight > 160 && $activeSlave.boobs < 1500>> - <<set $activeSlave.boobs += (random(2,6)*100)>> - <<elseif $activeSlave.weight > 130 && $activeSlave.boobs < 1500>> - <<set $activeSlave.boobs += (random(1,4)*100)>> - <<elseif $activeSlave.weight > 95 && $activeSlave.boobs < 1200>> - <<set $activeSlave.boobs += (random(1,3)*100)>> - <<elseif $activeSlave.weight > 30 && $activeSlave.boobs < 1000>> - <<set $activeSlave.boobs += 100>> - <</if>> -<</if>> - -<<set _femaleBoobShapeGen = []>> -<<if $activeSlave.boobs > 250 && $activeSlave.boobs < 800>> - <<set _femaleBoobShapeGen.push("perky")>> - <<set _femaleBoobShapeGen.push("downward-facing")>> -<</if>> -<<if $activeSlave.boobs > 400 && $activeSlave.boobs < 1200>> - <<set _femaleBoobShapeGen.push("torpedo-shaped")>> - <<set _femaleBoobShapeGen.push("wide-set")>> -<</if>> -<<if $activeSlave.boobs > 800 && $activeSlave.physicalAge > random(10,50)>> - <<set _femaleBoobShapeGen.push("saggy")>> -<</if>> -<<if _femaleBoobShapeGen.length == 1>> - <<if random(1,2) != 1>> - <<set $activeSlave.boobShape = _femaleBoobShapeGen.random()>> - <</if>> -<<elseif _femaleBoobShapeGen.length > 1>> - <<if random(1,3) != 1>> - <<set $activeSlave.boobShape = _femaleBoobShapeGen.random()>> - <</if>> -<</if>> - -<<if passage() != "Starting Girls">> - <<set $activeSlave.earPiercing = either(0,1)>> - <<set $activeSlave.nosePiercing = either(0,0,0,1)>> - <<set $activeSlave.eyebrowPiercing = either(0,0,0,0,0,1)>> - <<set $activeSlave.clitPiercing = either(0,0,0,0,0,1)>> - <<set $activeSlave.lipsPiercing = either(0,0,0,0,0,1)>> - <<set $activeSlave.navelPiercing = either(0,0,0,1)>> - <<set $activeSlave.nipplesPiercing = either(0,0,0,0,1)>> -<</if>> - -<<set $activeSlave.face = random(-60,60)>> -<<if random(0,2) == 1>><<set $activeSlave.face = random(-10,10)>><</if>> -<<if $activeSlave.physicalAge > 40>> - <<set $activeSlave.face -= random(0,20)>> -<<elseif $activeSlave.physicalAge > 35>> - <<set $activeSlave.face -= random(0,10)>> -<<elseif $activeSlave.physicalAge <= 20>> - <<set $activeSlave.face += random(0,20)>> -<<elseif $activeSlave.physicalAge <= 25>> - <<set $activeSlave.face += random(0,10)>> -<</if>> -<<if $activeSlave.physicalAge > 10>> - <<set $activeSlave.faceShape = either("androgynous", "cute", "sensual", "exotic", "normal", "normal")>> -<<else>> - <<set $activeSlave.faceShape = either("androgynous", "androgynous", "cute", "cute", "sensual", "exotic", "normal", "normal")>> -<</if>> -<<switch $activeSlave.faceShape>> -<<case "sensual" "cute">> - <<set $activeSlave.face += random(0,20)>> -<<case "exotic" "androgynous">> - <<set $activeSlave.face += random(-10,10)>> -<<case "masculine">> - <<set $activeSlave.face += random(-10,0)>> -<</switch>> - -<<if $activeSlave.boobs < 250>> - <<set $activeSlave.nipples = either("tiny", "tiny", "tiny", "tiny", "cute", "cute", "puffy", "partially inverted")>> -<<elseif $activeSlave.boobs < 500>> - <<set $activeSlave.nipples = either("tiny", "cute", "cute", "cute", "puffy", "partially inverted")>> -<<elseif $activeSlave.boobs < 1000>> - <<set $activeSlave.nipples = either("tiny", "cute", "cute", "cute", "puffy", "puffy", "partially inverted", "inverted")>> -<<else>> - <<set $activeSlave.nipples = either("cute", "puffy", "partially inverted", "inverted", "huge")>> -<</if>> - -<<set $activeSlave.vagina = either(0, 0, 1, 1, 1)>> -<<if $activeSlave.actualAge < 20>> - <<set $activeSlave.vagina = either(0, 1)>> -<</if>> -<<if $activeSlave.actualAge > 30>> - <<set $activeSlave.vagina = either(1, 1, 1, 1, 2)>> -<</if>> -<<if $activeSlave.vagina == 0>> - <<set $activeSlave.vaginalSkill = 0>> -<</if>> -<<if $activeSlave.energy < random(1,80)>> - <<set $activeSlave.vaginaLube = 0>> -<<elseif $activeSlave.physicalAge > random(35,60)>> - <<set $activeSlave.vaginaLube = 0>> -<</if>> - -<<set $activeSlave.clit = either(0, 0, 0, 0, 0, 0, 1, 1, 2)>> -<<set $activeSlave.labia = either(0, 0, 0, 1, 1, 1, 1, 2, 2, 3)>> -<<set $activeSlave.foreskin = random(0,4)>> - -<<set $activeSlave.voice = either(1, 2, 2, 2, 2, 2, 2, 3, 3, 3)>> - -<<set $activeSlave.anus = either(0, 0, 1, 1, 2)>> -<<set $activeSlave.analArea = $activeSlave.anus + either(0, 0, 0, 1)>> - -<<if $activeSlave.anus == 0>> - <<set $activeSlave.analSkill = 0>> -<<elseif random(1,4) == 1>> - <<set $activeSlave.anusTat = "bleached">> -<</if>> - -/%pedoshit%/ -<<if $activeSlave.physicalAge <= 11>> - <<set $activeSlave.hips = either(-2, -2, -1, -1, 0)>> -<<elseif $activeSlave.physicalAge <= 13>> - <<set $activeSlave.hips = either(-2, -1, -1, 0, 1)>> -<</if>> -<<if $activeSlave.physicalAge <= 13>> - <<set $activeSlave.vagina = either(0, 0, 0, 0, 0, 0, 0, 1)>> -<<elseif $activeSlave.physicalAge <= 15>> - <<set $activeSlave.vagina = either(0, 0, 0, 0, 0, 1, 1)>> -<<elseif $activeSlave.physicalAge <= 17>> - <<set $activeSlave.vagina = either(0, 0, 0, 1, 1, 1)>> -<</if>> - -<<if $activeSlave.vagina == 0>> - <<set $activeSlave.vaginalSkill = 0>> -<</if>> - -<<if ($activeSlave.physicalAge <= 11)>> - <<set $activeSlave.clit = either(0, 0, 0, 0, 0, 0, 0, 0, 1)>> -<<elseif ($activeSlave.physicalAge <= 13)>> - <<set $activeSlave.clit = either(0, 0, 0, 0, 0, 0, 0, 1, 1)>> -<<elseif ($activeSlave.physicalAge <= 15)>> - <<set $activeSlave.clit = either(0, 0, 0, 0, 0, 0, 0, 1, 2)>> -<</if>> - -<<if ($activeSlave.physicalAge <= 11)>> - <<set $activeSlave.labia = either(0, 0, 0, 0, 0, 0, 0, 1, 1)>> -<<elseif ($activeSlave.physicalAge <= 12)>> - <<set $activeSlave.labia = either(0, 0, 0, 0, 0, 0, 1, 1, 1)>> -<<elseif ($activeSlave.physicalAge <= 13)>> - <<set $activeSlave.labia = either(0, 0, 0, 0, 0, 1, 1, 1, 1)>> -<<elseif ($activeSlave.physicalAge <= 14)>> - <<set $activeSlave.labia = either(0, 0, 0, 0, 1, 1, 1, 1, 2)>> -<<elseif ($activeSlave.physicalAge <= 15)>> - <<set $activeSlave.labia = either(0, 0, 0, 1, 1, 1, 1, 2, 2)>> -<</if>> - -<<if ($activeSlave.physicalAge <= 13)>> - <<set $activeSlave.voice = either(2, 2, 2, 3, 3, 3, 3, 3, 3)>> -<<elseif ($activeSlave.physicalAge <= 16)>> - <<set $activeSlave.voice = either(2, 2, 2, 2, 2, 3, 3, 3, 3)>> -<</if>> - -<<if $activeSlave.physicalAge <= 6>> - <<set $activeSlave.pregAdaptation = 5>> -<<elseif $activeSlave.physicalAge <= 7>> - <<set $activeSlave.pregAdaptation = 6>> -<<elseif $activeSlave.physicalAge <= 8>> - <<set $activeSlave.pregAdaptation = 7>> -<<elseif $activeSlave.physicalAge <= 9>> - <<set $activeSlave.pregAdaptation = 8>> -<<elseif $activeSlave.physicalAge <= 10>> - <<set $activeSlave.pregAdaptation = 9>> -<<elseif $activeSlave.physicalAge <= 11>> - <<set $activeSlave.pregAdaptation = 10>> -<<elseif $activeSlave.physicalAge <= 12>> - <<set $activeSlave.pregAdaptation = 14>> -<<elseif $activeSlave.physicalAge <= 13>> - <<set $activeSlave.pregAdaptation = 18>> -<<elseif $activeSlave.physicalAge <= 14>> - <<set $activeSlave.pregAdaptation = 22>> -<<elseif $activeSlave.physicalAge <= 15>> - <<set $activeSlave.pregAdaptation = 26>> -<<elseif $activeSlave.physicalAge <= 16>> - <<set $activeSlave.pregAdaptation = 30>> -<</if>> - -<<if $activeSlave.fuckdoll > 0>> - <<set $activeSlave.pronoun = "it", $activeSlave.possessivePronoun = "its", $activeSlave.possessive = "its", $activeSlave.object = "it", $activeSlave.objectReflexive = "itself", $activeSlave.noun = "toy">> -<<elseif $activeSlave.dick > 0 && $activeSlave.vagina == -1 && $diversePronouns == 1>> - <<set $activeSlave.pronoun = "he", $activeSlave.possessivePronoun = "his", $activeSlave.possessive = "his", $activeSlave.object = "him", $activeSlave.objectReflexive = "himself", $activeSlave.noun = "boy">> -<<else>> - <<set $activeSlave.pronoun = "she", $activeSlave.possessivePronoun = "hers", $activeSlave.possessive = "her", $activeSlave.object = "her", $activeSlave.objectReflexive = "herself", $activeSlave.noun = "girl">> -<</if>> - -<<if passage() == "Slave Markets" && $slaveMarket == "corporate">> - <<if ($captureUpgradeRace != "unselected") && ($captureUpgradeRace != "none")>> - <<if $activeSlave.race != $captureUpgradeRace>> - <<set $slaveMarket = "corporate">> - <<goto "Slave Markets">> - <</if>> - <</if>> -<</if>> - -<<if $seeExtreme == 1>> - <<run disabilityRoll($activeSlave)>> -<</if>> +<<run GenerateNewSlave("XX")>> diff --git a/src/uncategorized/generateXYSlave.tw b/src/uncategorized/generateXYSlave.tw index 10a2443f40175623c1b48754899de2c3ad2b34f8..c7d29889638e3c61bb6464f1a6878d7f67725ab5 100644 --- a/src/uncategorized/generateXYSlave.tw +++ b/src/uncategorized/generateXYSlave.tw @@ -1,705 +1,3 @@ :: Generate XY Slave [nobr] -<<BaseSlave>> -/% Defaults that differ from the old template %/ -<<set WombInit($activeSlave)>> -<<set $activeSlave.genes = "XY", $activeSlave.hLength = 10, $activeSlave.prostate = 1, $activeSlave.canRecruit = 1>> - -<<run generateAge($activeSlave)>> - -<<if $activeSlave.physicalAge < 6>> - <<set $activeSlave.teeth = "baby">> -<<elseif $activeSlave.physicalAge < 12>> - <<set $activeSlave.teeth = "mixed">> -<</if>> - -<<if $activeSlave.ovaries == 1>> - <<if $activeSlave.physicalAge >= $activeSlave.pubertyAgeXX>> - <<set $activeSlave.pubertyXX = 1>> - <<else>> - <<set $activeSlave.pubertyXX = 0>> - <</if>> -<<else>> - <<set $activeSlave.pubertyXX = 0>> -<</if>> - -<<set $activeSlave.ID = $IDNumber++>> -<<set $activeSlave.weekAcquired = $week>> - -<<set _gaussianPair = gaussianPair()>> -<<set $activeSlave.intelligence = Intelligence.random()>> -<<if _gaussianPair[0] < _gaussianPair[1] + $activeSlave.intelligence/29 - 0.35>> /* 40.23% chance if intelligence is 0, 99.26% chance if intelligence is 100 */ - <<set $activeSlave.intelligenceImplant = 15>> - <<if random(15,150) < $activeSlave.intelligence>> - <<set $activeSlave.intelligenceImplant = 30>> - <</if>> -<</if>> - -<<if $AgePenalty == 1>> - <<if ($activeSlave.actualAge < 16)>> - <<set $activeSlave.career = setup.veryYoungCareers.random()>> - <<elseif ($activeSlave.actualAge <= 24)>> - <<set $activeSlave.career = setup.youngCareers.random()>> - <<elseif ($activeSlave.intelligenceImplant >= 15)>> - <<set $activeSlave.career = setup.educatedCareers.random()>> - <<else>> - <<set $activeSlave.career = setup.uneducatedCareers.random()>> - <</if>> -<<else>> - <<if ($activeSlave.actualAge < 16)>> - <<set $activeSlave.career = setup.veryYoungCareers.random()>> - <<elseif ($activeSlave.intelligenceImplant >= 15)>> - <<set $activeSlave.career = setup.educatedCareers.random()>> - <<elseif ($activeSlave.actualAge <= 24)>> - <<set $activeSlave.career = setup.youngCareers.random()>> - <<else>> - <<set $activeSlave.career = setup.uneducatedCareers.random()>> - <</if>> -<</if>> - -<<set $activeSlave.vaginalSkill = 0>> -<<set $activeSlave.analSkill = random(0,15)>> -<<set $activeSlave.oralSkill = random(0,15)>> -<<set $activeSlave.entertainSkill = random(0,15)>> -<<set $activeSlave.whoreSkill = random(0,15)>> - -<<set $activeSlave.energy = random(15,90)>> -<<run randomizeAttraction($activeSlave)>> -<<set $activeSlave.fetishStrength = random(0,90)>> -<<set $activeSlave.fetish = either("none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "submissive", "cumslut", "humiliation", "buttslut", "buttslut", "boobs", "dom", "sadist", "masochist")>> - -<<set $activeSlave.behavioralFlaw = either("none", "none", "none", "arrogant", "bitchy", "odd", "hates men", "hates men", "hates men", "hates women", "anorexic", "gluttonous", "devout", "liberated")>> -<<if ($activeSlave.behavioralFlaw == "devout")>> - <<set $activeSlave.sexualFlaw = either("none", "repressed", "shamefast", "apathetic", "crude", "judgemental")>> -<<else>> - <<set $activeSlave.sexualFlaw = either("none", "none", "none", "none", "hates oral", "hates anal", "hates anal", "repressed", "idealistic", "shamefast", "apathetic", "crude", "judgemental")>> -<</if>> -<<if ($activeSlave.behavioralFlaw == "none") && random(1,10) == 1>> - <<set $activeSlave.behavioralQuirk = either("confident", "cutting", "funny", "adores women", "adores men", "fitness", "insecure", "sinful", "advocate")>> -<</if>> -<<if ($activeSlave.sexualFlaw == "none") && random(1,10) == 1>> - <<set $activeSlave.sexualQuirk = either("gagfuck queen", "painal queen", "strugglefuck queen", "tease", "romantic", "perverted", "caring", "unflinching", "size queen")>> -<</if>> - -<<set $activeSlave.health = random(-50,50)>> - -<<set $activeSlave.devotion = random(-90,-60)>> -<<set $activeSlave.trust = random(-45,-25)>> - -<<if ($activeSlave.physicalAge > random(0,100))>> - <<set $activeSlave.eyes = -1>> -<</if>> -<<if ($activeSlave.physicalAge > random(30,100))>> - <<set $activeSlave.hears = -1>> -<</if>> - -/% Begin height replacement section. %/ - -/% Since we use nationality for height effects we need to initialize it now instead of later on like in vanilla Free Cities. %/ -<<if $fixedRace == 0>> - <<if $fixedNationality == 0>> - <<set $activeSlave.nationality = hashChoice($nationalities)>> - <<else>> - <<set $activeSlave.nationality = $fixedNationality>> - <<set $fixedNationality = 0>> - <</if>> - <<run nationalityToRace($activeSlave)>> - /* Corporate slavegen with race selection */ - <<if passage() == "Corporate Market" && ($captureUpgradeRace != "unselected") && ($captureUpgradeRace != "none")>> - <<if $captureUpgradeRace == "mixed race">> - <<set $activeSlave.race = "mixed race">> - <<else>> - <<set _capUpgradeCheck = setup[$captureUpgradeRace.toLowerCase().replace(/[ -]/g, '')+'Nationalities']>> - <<set _capUpgradeNationalities = {}>> - <<set _keys = Object.keys(_capUpgradeCheck)>> - <<for _u = 0; _u < _keys.length; _u++>> - <<set _capNation = _keys[_u]>> - <<if _capNation in $nationalities>> - <<set _capUpgradeNationalities[_capNation] = _capUpgradeCheck[_capNation]>> - <</if>> - <</for>> - <<if Object.keys(_capUpgradeNationalities).length > 0>> - <<set $activeSlave.nationality = hashChoice(_capUpgradeNationalities), $activeSlave.race = $captureUpgradeRace>> - <<else>> - <<set $activeSlave.nationality = hashChoice(_capUpgradeCheck), $activeSlave.race = $captureUpgradeRace>> - <</if>> - <</if>> - <<if $activeSlave.race != $captureUpgradeRace>> - <<set $activeSlave.race = $captureUpgradeRace>> - <</if>> - <</if>> - /* end Corporate slavegen with race selection */ -<<else>> - <<switch $fixedRace>> - <<case "white">> - <<set $activeSlave.nationality = hashChoice(setup.whiteNationalities)>> - <<case "asian">> - <<set $activeSlave.nationality = hashChoice(setup.asianNationalities)>> - <<case "latina">> - <<set $activeSlave.nationality = hashChoice(setup.latinaNationalities)>> - <<case "black">> - <<set $activeSlave.nationality = hashChoice(setup.blackNationalities)>> - <<case "pacific islander">> - <<set $activeSlave.nationality = hashChoice(setup.pacificislanderNationalities)>> - <<case "southern european">> - <<set $activeSlave.nationality = hashChoice(setup.southerneuropeanNationalities)>> - <<case "amerindian">> - <<set $activeSlave.nationality = hashChoice(setup.amerindianNationalities)>> - <<case "semitic">> - <<set $activeSlave.nationality = hashChoice(setup.semiticNationalities)>> - <<case "middle eastern">> - <<set $activeSlave.nationality = hashChoice(setup.middleeasternNationalities)>> - <<case "indo-aryan">> - <<set $activeSlave.nationality = hashChoice(setup.indoaryanNationalities)>> - <<case "malay">> - <<set $activeSlave.nationality = hashChoice(setup.malayNationalities)>> - <<default>> - <<set $activeSlave.nationality = hashChoice($nationalities)>> - <</switch>> - <<set $activeSlave.race = $fixedRace>> - <<set $fixedRace = 0>> -<</if>> -<<run nationalityToName($activeSlave)>> -<<run nationalityToAccent($activeSlave)>> - -<<set $activeSlave.height = Math.round(Height.random($activeSlave))>> -<<if $activeSlave.physicalAge <= 13>> - <<if $activeSlave.height > Height.mean($activeSlave) * 170/172.5>> - <<set $activeSlave.hips = either(-2, -1, -1, 0, 1)>> - <<set $activeSlave.shoulders = either(-1, -1, 0, 0, 0, 1)>> - <<else>> - <<set $activeSlave.hips = either(-2, -2, -1, -1, 0)>> - <<set $activeSlave.shoulders = either(-2, -1, -1, 0, 0, 1)>> - <</if>> -<<else>> - <<if $activeSlave.height >= Height.mean($activeSlave) * 170/172.5>> - <<set $activeSlave.hips = either(-2, -1, -1, 0, 1)>> - <<set $activeSlave.shoulders = either(-1, 0, 1, 1, 2, 2)>> - <<else>> - <<set $activeSlave.hips = either(-2, -2, -1, -1, 0)>> - <<set $activeSlave.shoulders = either(-1, 0, 0, 1, 1, 2)>> - <</if>> -<</if>> -/% End height replacement section. %/ - -<<set $activeSlave.weight = random(-100, 180)>> -<<if $activeSlave.physicalAge < 13>> - <<set $activeSlave.waist = random(-15,25)>> -<<elseif ($activeSlave.weight < -30)>> - <<set $activeSlave.waist = random(-45,45)>> -<<elseif ($activeSlave.weight <= 30)>> - <<set $activeSlave.waist = random(-15,65)>> -<<elseif ($activeSlave.weight <= 160)>> - <<set $activeSlave.waist = random(5,100)>> -<<else>> - <<set $activeSlave.waist = random(50,100)>> -<</if>> - -<<if ($activeSlave.intelligenceImplant >= 15 || $activeSlave.intelligence > 95) && ($activeSlave.accent >= 3) && ($activeSlave.intelligence) > random(0,100)>> - <<set $activeSlave.accent -= 1>> -<</if>> - -<<set _maleCrookedTeethGen = $activeSlave.intelligence+$activeSlave.intelligenceImplant>> -<<if "American" == $activeSlave.nationality>> - <<set _maleCrookedTeethGen += 22>> -<<elseif ["Andorran", "Antiguan", "Argentinian", "Aruban", "Australian", "Austrian", "Bahamian", "Bahraini", "Barbadian", "Belarusian", "Belgian", "Bermudian", "Brazilian", "British", "Bruneian", "Bulgarian", "Canadian", "Catalan", "Chilean", "a Cook Islander", "Croatian", "Czech", "Cypriot", "Danish", "Dutch", "Emirati", "Estonian", "Finnish", "French", "German", "Greek", "Greenlandic", "Guamanian", "Hungarian", "Icelandic", "Irish", "Israeli", "Italian", "Japanese", "Kazakh", "Korean", "Kuwaiti", "Latvian", "a Liechtensteiner", "Lithuanian", "Luxembourgian", "Malaysian", "Maltese", "Mauritian", "Monégasque", "Montenegrin", "New Caledonian", "a New Zealander", "Niuean", "Norwegian", "Omani", "Palauan", "Panamanian", "Polish", "Portuguese", "Puerto Rican", "Qatari", "Romanian", "Russian", "Sammarinese", "Saudi", "Seychellois", "Singaporean", "Slovak", "Slovene", "Spanish", "Swedish", "Swiss", "Taiwanese", "Trinidadian", "Uruguayan", "Vatican"].includes($activeSlave.nationality)>> -<<else>> - <<set _maleCrookedTeethGen -= 20>> -<</if>> -<<if random(0,_maleCrookedTeethGen) <= 15 && $activeSlave.physicalAge >= 12>> - <<set $activeSlave.teeth = "crooked">> -<</if>> - -<<switch $activeSlave.race>> -<<case "black">> - <<set $activeSlave.butt = either(1, 1, 2, 3)>> - <<set $activeSlave.boobs = either(100, 200, 200, 300, 300, 400, 500)>> - <<set $activeSlave.lips = random(5,30)>> - <<set $activeSlave.skin = either("black", "dark brown", "brown")>> - <<set $activeSlave.hColor = either("black", "black", "black", "brown")>> - <<set $activeSlave.hStyle = either("neat", "crinkled")>> -<<case "white">> - <<set $activeSlave.butt = either(1, 1, 2, 3)>> - <<set $activeSlave.boobs = either(100, 200, 200, 300, 300, 400, 500)>> - <<set $activeSlave.lips = random(5,25)>> - <<if $activeSlave.nationality == "German">> - <<set $activeSlave.skin = either("pale", "light", "fair")>> - <<set $activeSlave.eyeColor = either("blue", "blue", "blue", "brown", "green")>> - <<set $activeSlave.hColor = either("black", "blonde", "blonde", "blonde", "red", "brown")>> - <<elseif $activeSlave.nationality == "Icelandic">> - <<set $activeSlave.skin = either("pale", "pale", "light", "fair")>> - <<set $activeSlave.eyeColor = either("blue", "blue", "blue", "brown", "green")>> - <<set $activeSlave.hColor = either("black", "blonde", "blonde", "blonde", "red", "brown")>> - <<elseif $activeSlave.nationality == "Irish">> - <<set $activeSlave.skin = either("pale", "pale", "light", "fair")>> - <<set $activeSlave.eyeColor = either("blue", "brown", "green", "green", "green")>> - <<set $activeSlave.hColor = either("black", "blonde", "red", "red", "red", "brown")>> - <<elseif $activeSlave.nationality == "Scottish">> - <<set $activeSlave.skin = either("pale", "fair", "light", "fair")>> - <<set $activeSlave.eyeColor = either("blue", "brown", "brown", "green", "green", "green")>> - <<set $activeSlave.hColor = either("black", "black", "blonde", "red", "red", "red", "brown")>> - <<else>> - <<set $activeSlave.skin = either("pale", "light", "fair")>> - <<set $activeSlave.eyeColor = either("blue", "brown", "green")>> - <<set $activeSlave.hColor = either("black", "blonde", "red", "brown")>> - <</if>> - <<set $activeSlave.hStyle = "neat">> -<<case "latina">> - <<set $activeSlave.butt = either(1, 1, 2, 3)>> - <<set $activeSlave.boobs = either(100, 200, 200, 300, 300, 400, 500)>> - <<set $activeSlave.lips = random(5,25)>> - <<set $activeSlave.skin = either("light olive", "brown", "dark brown", "tanned", "dark olive")>> - <<set $activeSlave.hColor = either("black", "black", "brown", "brown")>> - <<set $activeSlave.hStyle = "neat">> -<<case "indo-aryan" "malay" "pacific islander" "amerindian">> - <<set $activeSlave.butt = either(1, 1, 2, 3)>> - <<set $activeSlave.boobs = either(100, 200, 200, 300, 300, 400, 500)>> - <<set $activeSlave.lips = random(5,25)>> - <<set $activeSlave.skin = either("dark", "light")>> - <<set $activeSlave.hColor = either("black")>> - <<set $activeSlave.hStyle = "neat">> -<<case "asian">> - <<set $activeSlave.butt = either(1, 1, 2, 3)>> - <<set $activeSlave.boobs = either(100, 200, 200, 300, 300, 400, 500)>> - <<set $activeSlave.lips = random(5,25)>> - <<set $activeSlave.skin = either("light olive", "dark olive", "light")>> - <<set $activeSlave.hColor = either("black")>> - <<set $activeSlave.hStyle = "neat">> -<<case "middle eastern" "semitic" "southern european">> - <<set $activeSlave.butt = either(1, 1, 2, 3)>> - <<set $activeSlave.boobs = either(100, 200, 200, 300, 300, 400, 500)>> - <<set $activeSlave.lips = random(5,25)>> - <<set $activeSlave.skin = either("fair", "light olive", "tanned", "light")>> - <<set $activeSlave.hColor = either("black")>> - <<set $activeSlave.hStyle = "neat">> -<<default>> - <<set $activeSlave.butt = either(1, 1, 2, 3)>> - <<set $activeSlave.boobs = either(100, 200, 200, 300, 300, 400, 500)>> - <<set $activeSlave.lips = random(5,25)>> - <<set $activeSlave.skin = either("pale", "dark", "light")>> - <<set $activeSlave.hColor = either("black", "black", "black", "black", "brown", "brown", "blonde", "red")>> - <<set $activeSlave.hStyle = "neat">> -<</switch>> -<<if $activeSlave.physicalAge > 55>> - <<if random(1,100) > 40>> - <<set $activeSlave.hStyle = "bald", $activeSlave.bald = 1>> - <</if>> -<</if>> -<<if ($activeSlave.skin == "pale") || ($activeSlave.skin == "fair")>> - <<if random(1,4) == 1>> - <<set $activeSlave.markings = either("freckles", "freckles", "freckles", "heavily freckled", "beauty mark", "beauty mark", "birthmark", "birthmark")>> - <</if>> -<<elseif random(1,8) == 1>> - <<set $activeSlave.markings = either("beauty mark", "birthmark")>> -<</if>> - -<<set $activeSlave.origRace = $activeSlave.race>> -<<set $activeSlave.origEye = $activeSlave.eyeColor>> -<<set $activeSlave.origHColor = $activeSlave.hColor>> -<<set $activeSlave.origSkin = $activeSlave.skin>> -<<set $activeSlave.pubicHColor = $activeSlave.hColor>> -<<set $activeSlave.pubicHStyle = either("hairless", "bald", "bald", "waxed", "waxed", "waxed", "waxed", "waxed", "waxed", "in a strip", "in a strip", "in a strip", "neat", "neat", "neat", "neat", "neat", "neat", "bushy in the front and neat in the rear", "bushy in the front and neat in the rear", "bushy in the front and neat in the rear", "bushy", "bushy", "bushy", "bushy", "bushy", "bushy", "very bushy", "very bushy")>> -<<set $activeSlave.underArmHColor = $activeSlave.hColor>> -<<set $activeSlave.underArmHStyle = either("hairless", "bald", "bald", "waxed", "waxed", "waxed", "waxed", "shaved", "shaved", "shaved", "shaved", "shaved", "neat", "neat", "neat", "neat", "neat", "neat", "neat", "bushy", "bushy", "bushy", "bushy", "bushy")>> -<<if ($activeSlave.pubicHStyle == "hairless" || $activeSlave.underArmHStyle == "hairless") && random(1,100) > 40>> - <<set $activeSlave.pubicHStyle = "hairless", $activeSlave.underArmHStyle = "hairless">> -<</if>> -<<if ($activeSlave.hColor == "blonde" && random(1,20) > 17)>> - <<set $activeSlave.eyebrowHColor = either("brown", "brown", "brown", "brown", "black")>> - <<set $activeSlave.override_Brow_H_Color = 1>> -<<else>> - <<set $activeSlave.eyebrowHColor = $activeSlave.hColor>> -<</if>> -<<set $activeSlave.eyebrowHStyle = either("bald", "shaved", "shaved", "straight", "straight", "straight", "straight", "straight", "straight", "rounded", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "slanted inwards", "slanted outwards", "high-arched", "elongated", "shortened", "curved", "curved", "curved", "curved", "curved")>> -<<set $activeSlave.eyebrowFullness = either("pencil-thin", "thin", "thin", "threaded", "threaded", "threaded", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "tapered", "tapered", "tapered", "thick", "thick", "bushy")>> - - -<<if ($weightAffectsAssets != 0)>> - <<if $activeSlave.weight < -10 && $activeSlave.butt > 1>> - <<set $activeSlave.butt -= 1>> - <<elseif $activeSlave.weight > 100 && $activeSlave.butt < 6>> - <<set $activeSlave.butt += random(1,2)>> - <<elseif $activeSlave.weight > 10 && $activeSlave.butt < 4>> - <<set $activeSlave.butt += 1>> - <</if>> - - <<if $activeSlave.weight < -10 && $activeSlave.boobs > 200>> - <<set $activeSlave.boobs -= 100>> - <<elseif $activeSlave.weight > 190 && $activeSlave.boobs < 3000>> - <<set $activeSlave.boobs += (random(3,8)*100)>> - <<elseif $activeSlave.weight > 160 && $activeSlave.boobs < 1500>> - <<set $activeSlave.boobs += (random(2,6)*100)>> - <<elseif $activeSlave.weight > 130 && $activeSlave.boobs < 1500>> - <<set $activeSlave.boobs += (random(1,4)*100)>> - <<elseif $activeSlave.weight > 95 && $activeSlave.boobs < 1200>> - <<set $activeSlave.boobs += (random(1,3)*100)>> - <<elseif $activeSlave.weight > 30 && $activeSlave.boobs < 1000>> - <<set $activeSlave.boobs += 100>> - <</if>> -<</if>> - -<<set _maleBoobShapeGen = []>> -<<if $activeSlave.boobs > 250 && $activeSlave.boobs < 800>> - <<set _maleBoobShapeGen.push("perky")>> - <<set _maleBoobShapeGen.push("downward-facing")>> -<</if>> -<<if $activeSlave.boobs > 400 && $activeSlave.boobs < 1200>> - <<set _maleBoobShapeGen.push("torpedo-shaped")>> - <<set _maleBoobShapeGen.push("wide-set")>> -<</if>> -<<if $activeSlave.boobs > 800 && $activeSlave.physicalAge > random(10,50)>> - <<set _maleBoobShapeGen.push("saggy")>> -<</if>> -<<if _maleBoobShapeGen.length == 1>> - <<if random(1,2) != 1>> - <<set $activeSlave.boobShape = _maleBoobShapeGen.random()>> - <</if>> -<<elseif _maleBoobShapeGen.length > 1>> - <<if random(1,3) != 1>> - <<set $activeSlave.boobShape = _maleBoobShapeGen.random()>> - <</if>> -<</if>> - -<<if passage() != "Starting Girls">> - <<set $activeSlave.earPiercing = either(0,0,0,1)>> - <<set $activeSlave.nosePiercing = either(0,0,0,0,1)>> - <<set $activeSlave.eyebrowPiercing = either(0,0,0,0,0,1)>> - <<set $activeSlave.dickPiercing = either(0,0,0,0,0,1)>> - <<set $activeSlave.lipsPiercing = either(0,0,0,0,0,1)>> - <<set $activeSlave.navelPiercing = either(0,0,0,0,1)>> - <<set $activeSlave.nipplesPiercing = either(0,0,0,0,1)>> -<</if>> - -<<set $activeSlave.face = random(-70,20)>> -<<if random(0,2) == 1>><<set $activeSlave.face = random(-40,-10)>><</if>> -<<if $activeSlave.physicalAge > 40>> - <<set $activeSlave.face -= random(0,20)>> -<<elseif $activeSlave.physicalAge > 35>> - <<set $activeSlave.face -= random(0,10)>> -<<elseif $activeSlave.physicalAge <= 20>> - <<set $activeSlave.face += random(0,20)>> -<<elseif $activeSlave.physicalAge <= 25>> - <<set $activeSlave.face += random(0,10)>> -<</if>> -<<if $activeSlave.physicalAge >= 17>> - <<set $activeSlave.faceShape = either("masculine", "masculine", "masculine", "androgynous")>> -<<elseif $activeSlave.physicalAge >= 15>> - <<set $activeSlave.faceShape = either("masculine", "masculine", "masculine", "masculine", "masculine", "masculine", "masculine", "masculine", "androgynous", "sensual", "exotic", "normal")>> -<<elseif $activeSlave.physicalAge >= 13>> - <<set $activeSlave.faceShape = either("masculine", "masculine", "masculine", "androgynous", "cute", "sensual", "exotic", "normal")>> -<<elseif $activeSlave.physicalAge >= 11>> - <<set $activeSlave.faceShape = either("masculine", "androgynous", "cute", "sensual", "exotic", "normal", "normal")>> -<<else>> - <<set $activeSlave.faceShape = either("androgynous", "androgynous", "cute", "cute", "sensual", "exotic", "normal", "normal")>> -<</if>> -<<switch $activeSlave.faceShape>> -<<case "sensual" "cute">> - <<set $activeSlave.face += random(0,20)>> -<<case "exotic" "androgynous">> - <<set $activeSlave.face += random(-10,10)>> -<<case "masculine">> - <<set $activeSlave.face += random(-10,0)>> -<</switch>> - -<<if $activeSlave.boobs < 250>> - <<set $activeSlave.nipples = either("tiny", "tiny", "tiny", "tiny", "cute", "cute", "puffy", "partially inverted")>> -<<elseif $activeSlave.boobs < 500>> - <<set $activeSlave.nipples = either("tiny", "cute", "cute", "cute", "puffy", "partially inverted")>> -<<elseif $activeSlave.boobs < 1000>> - <<set $activeSlave.nipples = either("tiny", "cute", "cute", "cute", "puffy", "puffy", "partially inverted", "inverted")>> -<<else>> - <<set $activeSlave.nipples = either("cute", "puffy", "partially inverted", "inverted", "huge")>> -<</if>> - -<<set $activeSlave.vagina = -1>> -<<set $activeSlave.clit = 0>> -<<set $activeSlave.preg = 0>> - -<<set $activeSlave.dick = either(1, 2, 2, 2, 3, 3, 3, 4, 4, 5)>> -<<if $seeExtreme == 1>> - <<set $activeSlave.balls = either(0, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5)>> -<<else>> - <<set $activeSlave.balls = either(1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5)>> -<</if>> -<<set $activeSlave.scrotum = $activeSlave.balls>> - -<<if $activeSlave.balls > 0>> - <<if $activeSlave.physicalAge >= $activeSlave.pubertyAgeXY>> - <<set $activeSlave.pubertyXY = 1>> - <<else>> - <<set $activeSlave.pubertyXY = 0>> - <</if>> -<<else>> - <<set $activeSlave.pubertyXY = 0>> -<</if>> - -/% Begin circumcision rate replacement section. %/ -/% The default rate of 50% is wildly unrepresentative, and there is extreme regional variation. %/ -/% - What we want is the prevalence among newborns, since this game - happens about 20 years in the future, but we'll use this lacking - something better. - https://pophealthmetrics.biomedcentral.com/articles/10.1186/s12963-016-0073-5 - Right now we mostly just break it down by country. - It would be better to break it down by both country - and race if statistics are available. -%/ -<<if ($seeCircumcision == 0)>> - <<set $activeSlave.foreskin = $activeSlave.dick + random(0,1)>> -<<else>> - /% Temporarily use activeSlave.foreskin to store the chance of circumcision. %/ - <<switch $activeSlave.nationality>> - <<case "Afghan" "Iranian" "Moroccan" "Palestinian" "Sahrawi" "Tunisian">> - <<set $activeSlave.foreskin = 100>> - <<case "Comorian" "Gabonese" "Iraqi" "Jordanian" "Kurdish" "Mauritanian" "Nigerian" "Tajik" "Turkish" "Yemeni">> - <<set $activeSlave.foreskin = 99>> - <<case "Algerian" "Azerbaijani" "Liberian" "Maldivian">> - <<set $activeSlave.foreskin = 98>> - <<case "Djiboutian" "Eritrean" "Ivorian" "Libyan" "Saudi" "Uzbek">> - <<set $activeSlave.foreskin = 97>> - <<case "Nigerien" "Pakistani" "Sierra Leonean" "Turkmen" "Zairian">> - <<set $activeSlave.foreskin = 96>> - <<case "a Cook Islander" "Egyptian" "Gambian" "Guamanian" "Malagasy" "Nauruan" "Ni-Vanuatu" "Niuean" "Palauan" "Samoan" "a Solomon Islander" "Togolese" "Tongan" "Tuvaluan">> - <<set $activeSlave.foreskin = 95>> - <<case "Cameroonian" "Senegalese" "Somali">> - <<set $activeSlave.foreskin = 94>> - <<case "Bangladeshi" "Beninese" "Bissau-Guinean" "Indonesian" "Syrian">> - <<set $activeSlave.foreskin = 93>> - <<case "Ethiopian" "Filipina" "Ghanan" "Israeli" "Kosovan">> - <<set $activeSlave.foreskin = 92>> - <<case "Kenyan" "Kyrgyz">> - <<set $activeSlave.foreskin = 91>> - <<case "Burkinabé" "Omani">> - <<set $activeSlave.foreskin = 88>> - <<case "Equatoguinean">> - <<set $activeSlave.foreskin = 87>> - <<case "Kuwaiti" "Malian">> - <<set $activeSlave.foreskin = 86>> - <<case "Guinean">> - <<set $activeSlave.foreskin = 84>> - <<case "Bahraini">> - <<set $activeSlave.foreskin = 81>> - <<case "French Polynesian">> - <<set $activeSlave.foreskin = 78>> - <<case "American" "Qatari">> - <<set $activeSlave.foreskin = 77>> - <<case "Emirati">> - <<set $activeSlave.foreskin = 76>> - <<case "Chadian">> - <<set $activeSlave.foreskin = 74>> - <<case "Tanzanian">> - <<set $activeSlave.foreskin = 72>> - <<case "Congolese">> - <<set $activeSlave.foreskin = 70>> - <<case "Central African">> - <<set $activeSlave.foreskin = 63>> - <<case "Burundian" "Malaysian">> - <<set $activeSlave.foreskin = 61>> - <<case "Lebanese">> - <<set $activeSlave.foreskin = 60>> - <<case "Angolan">> - <<set $activeSlave.foreskin = 58>> - <<case "Fijian" "Kazakh">> - <<set $activeSlave.foreskin = 56>> - <<case "Bruneian" "Korean" "Mosotho">> - /% Population-weighted average of South Korea and North Korea. %/ - <<set $activeSlave.foreskin = 52>> - <<case "New Caledonian">> - <<set $activeSlave.foreskin = 50>> - <<case "Albanian">> - <<set $activeSlave.foreskin = 48>> - <<case "Mozambican">> - <<set $activeSlave.foreskin = 47>> - <<case "South African">> - <<set $activeSlave.foreskin = 45>> - <<case "Dominican">> - <<set $activeSlave.foreskin = 43>> - <<case "Bosnian">> - <<set $activeSlave.foreskin = 42>> - <<case "Sudanese">> - <<set $activeSlave.foreskin = 39>> - <<case "Mexican">> - <<set $activeSlave.foreskin = 38>> - <<case "Macedonian">> - <<set $activeSlave.foreskin = 34>> - <<case "a New Zealander">> - <<set $activeSlave.foreskin = 33>> - <<case "Canadian">> - <<set $activeSlave.foreskin = 32>> - <<case "Scottish">> - <<set $activeSlave.foreskin = 28>> - <<case "Australian" "Ugandan">> - <<set $activeSlave.foreskin = 27>> - <<case "Namibian">> - <<set $activeSlave.foreskin = 26>> - <<case "South Sudanese">> - <<set $activeSlave.foreskin = 24>> - <<case "Belgian" "Cypriot" "Thai">> - <<set $activeSlave.foreskin = 23>> - <<case "Malawian">> - <<set $activeSlave.foreskin = 22>> - <<case "British">> - <<set $activeSlave.foreskin = 21>> - <<case "Puerto Rican">> - <<set $activeSlave.foreskin = 20>> - <<case "Montenegrin">> - <<set $activeSlave.foreskin = 19>> - <<case "Mauritian">> - <<set $activeSlave.foreskin = 17>> - <<case "Motswana" "Singaporean" "Surinamese">> - <<set $activeSlave.foreskin = 15>> - <<case "Chinese" "French" "Indian" "Jamaican">> - <<set $activeSlave.foreskin = 14>> - <<case "Bulgarian" "Rwandan" "Zambian">> - <<set $activeSlave.foreskin = 13>> - <<case "French Guianan" "Guyanese" "Russian">> - <<set $activeSlave.foreskin = 12>> - <<case "German">> - <<set $activeSlave.foreskin = 11>> - <<case "Belarusian" "Georgian" "Papua New Guinean">> - <<set $activeSlave.foreskin = 10>> - <<case "Japanese" "Zimbabwean">> - <<set $activeSlave.foreskin = 9>> - <<case "Slovene" "Sri Lankan" "Swazi" "Taiwanese">> - <<set $activeSlave.foreskin = 8>> - <<case "Catalan" "Haitian" "Spanish">> - <<set $activeSlave.foreskin = 7>> - <<case "Austrian" "Dutch" "East Timorese" "Swiss" "Trinidadian">> - <<set $activeSlave.foreskin = 6>> - <<case "Danish" "Greek" "a Liechtensteiner" "Swedish">> - <<set $activeSlave.foreskin = 5>> - <<case "Burmese" "Cambodian" "Mongolian" "Nepalese" "Peruvian" "Serbian">> - <<set $activeSlave.foreskin = 4>> - <<case "Argentinian" "Italian" "Norwegian">> - <<set $activeSlave.foreskin = 3>> - <<case "Luxembourgian" "Tibetan" "Ukrainian" "Vincentian">> - <<set $activeSlave.foreskin = 2>> - <<case "Andorran" "Barbadian" "Bermudian" "Bhutanese" "Brazilian" "Croatian" "Finnish" "Hungarian" "Irish" "Moldovan" "Monégasque" "Panamanian" "Portuguese" "Seychellois" "Uruguayan">> - <<set $activeSlave.foreskin = 1>> - <<case "Antiguan" "Armenian" "Bahamian" "Belizean" "Bolivian" "Cape Verdean" "Chilean" "Colombian" "Costa Rican" "Cuban" "Czech" "Dominiquais" "Ecuadorian" "Estonian" "Greenlandic" "Grenadian" "Guatemalan" "Honduran" "I-Kiribati" "Icelandic" "Kittitian" "Laotian" "Latvian" "Lithuanian" "Maltese" "Marshallese" "Micronesian" "Nicaraguan" "Paraguayan" "Polish" "Romanian" "Saint Lucian" "Salvadoran" "Sammarinese" "São Toméan" "Slovak" "Vatican" "Venezuelan" "Vietnamese">> - <<set $activeSlave.foreskin = 0>> - <<default>> - /% Some overlooked country, or possibly stateless. Use global average. %/ - <<set $activeSlave.foreskin = 38>> - <</switch>> - /% Second pass for minorities in other countries. %/ - <<if ($activeSlave.race == "middle eastern") && ($activeSlave.foreskin < 76)>> - <<set $activeSlave.foreskin = 76>> - <</if>> - <<if ($activeSlave.race == "semitic") && ($activeSlave.foreskin < 90)>> - <<set $activeSlave.foreskin = 90>> - <</if>> - /% Chance activeSlave.foreskin back to the normal meaning. %/ - <<if (random(0,99) < $activeSlave.foreskin)>> - <<set $activeSlave.foreskin = 0>> - <<else>> - <<set $activeSlave.foreskin = $activeSlave.dick + random(0,1)>> - <</if>> -<</if>> -/% End circumcision rate replacement section. %/ -<<if $activeSlave.balls == 0>> - <<if random(0,1) == 1 && $activeSlave.faceShape == "masculine">> - <<set $activeSlave.faceShape = either("androgynous", "cute")>> - <</if>> -<<else>> - <<set $activeSlave.scrotum = $activeSlave.balls + either(0, 0, 1)>> -<</if>> - -<<if $activeSlave.balls > 2>> - <<set $activeSlave.voice = 1>> -<<elseif $activeSlave.balls > 0>> - <<set $activeSlave.voice = either(1, 1, 2)>> -<<else>> - <<set $activeSlave.voice = either(1, 2, 2)>> -<</if>> - -<<if $activeSlave.attrXY > 0>> - <<set $activeSlave.anus = either(0, 1, 2)>> -<<else>> - <<set $activeSlave.anus = either(0, 0, 0, 1, 1, 2)>> -<</if>> -<<set $activeSlave.analArea = $activeSlave.anus + either(0, 0, 0, 1)>> - -<<if $activeSlave.anus == 0>> - <<set $activeSlave.analSkill = 0>> -<<elseif random(1,4) == 1>> - <<set $activeSlave.anusTat = "bleached">> -<</if>> - -/%pedoshit%/ -<<if $activeSlave.physicalAge <= 13>> - <<set $activeSlave.dick = either(1, 1, 1, 1, 2, 2, 2, 3)>> - <<set $activeSlave.balls = either(0, 0, 1, 1, 1, 2, 2, 2, 2, 3, 3)>> - <<set $activeSlave.scrotum = $activeSlave.balls>> - <<set $activeSlave.anus = either(0, 0, 0, 0, 0, 1)>> -<<elseif $activeSlave.physicalAge <= 15>> - <<set $activeSlave.dick = either(1, 1, 1, 2, 2, 2, 3)>> - <<set $activeSlave.balls = either(0, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4)>> - <<set $activeSlave.scrotum = $activeSlave.balls>> - <<set $activeSlave.anus = either(0, 0, 0, 0, 1, 1, 1)>> -<<elseif $activeSlave.physicalAge <= 17>> - <<set $activeSlave.dick = either(1, 1, 2, 2, 3, 3)>> - <<set $activeSlave.balls = either(0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 5)>> - <<set $activeSlave.scrotum = $activeSlave.balls>> - <<set $activeSlave.anus = either(0, 0, 0, 1, 1, 1)>> -<</if>> - -<<if ($activeSlave.physicalAge <= 13)>> - <<set $activeSlave.butt = either(1, 1, 1, 2, 2, 3, 3, 4)>> -<</if>> - -<<if ($activeSlave.physicalAge <= 11)>> - <<set $activeSlave.voice = either(2, 2, 2, 3, 3, 3, 3, 3, 3)>> -<<elseif ($activeSlave.physicalAge <= 13)>> - <<set $activeSlave.voice = either(1, 1, 2, 2, 2, 2, 2, 3, 3)>> -<<elseif ($activeSlave.physicalAge <= 16)>> - <<set $activeSlave.voice = either(1, 1, 1, 2, 2, 2, 2, 2, 3)>> -<</if>> - -<<if $activeSlave.actualAge >= 18 && random(1,100) < 3>> - <<set $activeSlave.vasectomy = 1>> -<</if>> - -<<if $activeSlave.physicalAge <= 6>> - <<set $activeSlave.pregAdaptation = 5>> -<<elseif $activeSlave.physicalAge <= 7>> - <<set $activeSlave.pregAdaptation = 6>> -<<elseif $activeSlave.physicalAge <= 8>> - <<set $activeSlave.pregAdaptation = 7>> -<<elseif $activeSlave.physicalAge <= 9>> - <<set $activeSlave.pregAdaptation = 8>> -<<elseif $activeSlave.physicalAge <= 10>> - <<set $activeSlave.pregAdaptation = 9>> -<<elseif $activeSlave.physicalAge <= 11>> - <<set $activeSlave.pregAdaptation = 10>> -<<elseif $activeSlave.physicalAge <= 12>> - <<set $activeSlave.pregAdaptation = 12>> -<<elseif $activeSlave.physicalAge <= 13>> - <<set $activeSlave.pregAdaptation = 14>> -<<elseif $activeSlave.physicalAge <= 14>> - <<set $activeSlave.pregAdaptation = 16>> -<<elseif $activeSlave.physicalAge <= 15>> - <<set $activeSlave.pregAdaptation = 18>> -<<else>> - <<set $activeSlave.pregAdaptation = 20>> -<</if>> - -<<if $activeSlave.fuckdoll > 0>> - <<set $activeSlave.pronoun = "it", $activeSlave.possessivePronoun = "its", $activeSlave.possessive = "its", $activeSlave.object = "it", $activeSlave.objectReflexive = "itself", $activeSlave.noun = "toy">> -<<elseif $activeSlave.dick > 0 && $activeSlave.vagina == -1 && $diversePronouns == 1>> - <<set $activeSlave.pronoun = "he", $activeSlave.possessivePronoun = "his", $activeSlave.possessive = "his", $activeSlave.object = "him", $activeSlave.objectReflexive = "himself", $activeSlave.noun = "boy">> -<<else>> - <<set $activeSlave.pronoun = "she", $activeSlave.possessivePronoun = "hers", $activeSlave.possessive = "her", $activeSlave.object = "her", $activeSlave.objectReflexive = "herself", $activeSlave.noun = "girl">> -<</if>> - -<<if passage() == "Slave Markets" && $slaveMarket == "corporate">> - <<if ($captureUpgradeRace != "unselected") && ($captureUpgradeRace != "none")>> - <<if $activeSlave.race != $captureUpgradeRace>> - <<set $activeSlave.race = $captureUpgradeRace>> - <</if>> - <</if>> -<</if>> - -<<if $seeExtreme == 1>> - <<run disabilityRoll($activeSlave)>> -<</if>> +<<run GenerateNewSlave("XY")>> diff --git a/src/uncategorized/hgApplication.tw b/src/uncategorized/hgApplication.tw index 7bef2cc307a5006b77da878cfe229465c4bf93b9..79829ee53291c01efc192080f2d283eed4642ca0 100644 --- a/src/uncategorized/hgApplication.tw +++ b/src/uncategorized/hgApplication.tw @@ -4,7 +4,8 @@ <<set $HGSeverity = 0>> <</if>> -<<set _effectiveness = $HeadGirl.actualAge+(($HeadGirl.intelligence+$HeadGirl.intelligenceImplant)/3)-($HeadGirl.accent*5)+($HGSeverity*10)+(($activeSlave.intelligence+$activeSlave.intelligenceImplant)/3)-($activeSlave.accent*5)>> +<<set $activeSlave.training = Math.clamp($activeSlave.training, 0, 150)>> +<<set _effectiveness = $HeadGirl.actualAge+(($HeadGirl.intelligence+$HeadGirl.intelligenceImplant)/3)-($HeadGirl.accent*5)+($HGSeverity*10)+(($activeSlave.intelligence+$activeSlave.intelligenceImplant)/4)-($activeSlave.accent*5)>> <<if $AgePenalty == 0>> <<set _effectiveness += Math.max(0,(30-$HeadGirl.actualAge))>> <</if>> @@ -41,6 +42,7 @@ She helps $activeSlave.slaveName however she can. The tender care has @@.green;improved $activeSlave.slaveName's health.@@ <<set $activeSlave.health += 10>> +<<set $activeSlave.training = 0>> <<else>> @@ -160,7 +162,8 @@ She helps $activeSlave.slaveName however she can. The tender care has @@.green;i <<if $HGtraining == "obedience">> -<<set _effectiveness -= $activeSlave.intelligence+$activeSlave.intelligenceImplant>> +<<set $activeSlave.training = 0>> +<<set _effectiveness -= ($activeSlave.intelligence+$activeSlave.intelligenceImplant)/3>> <<if _effectiveness <= 0>> $activeSlave.slaveName is smart enough to complicate things; she manages to outwit her this week and makes no progress. <<else>> @@ -176,7 +179,7 @@ She helps $activeSlave.slaveName however she can. The tender care has @@.green;i <<elseif $HGtraining == "paraphilia">> -<<set _effectiveness -= $activeSlave.intelligence+$activeSlave.intelligenceImplant>> +<<set _effectiveness -= ($activeSlave.intelligence+$activeSlave.intelligenceImplant)/3>> <<set $activeSlave.training += _effectiveness>> $HeadGirl.slaveName does her best to get $activeSlave.slaveName past it with punishments and rewards, <<if $activeSlave.training > 100>> @@ -184,12 +187,12 @@ $HeadGirl.slaveName does her best to get $activeSlave.slaveName past it with pun <<set $activeSlave.training = 0>> <<set $activeSlave.sexualFlaw = "none">> <<else>> - and makes partial progress. + and makes partial progress. <</if>> <<elseif $HGtraining == "flaw">> -<<set _effectiveness -= $activeSlave.intelligence+$activeSlave.intelligenceImplant>> +<<set _effectiveness -= ($activeSlave.intelligence+$activeSlave.intelligenceImplant)/3>> <<set $activeSlave.training += _effectiveness>> $HeadGirl.slaveName punishes $activeSlave.slaveName whenever she catches her indulging in her bad habits, <<if $activeSlave.training > 100>> @@ -201,12 +204,12 @@ $HeadGirl.slaveName punishes $activeSlave.slaveName whenever she catches her ind <<set $activeSlave.sexualFlaw = "none">> <</if>> <<else>> - and makes partial progress. + and makes partial progress. <</if>> <<elseif $HGtraining == "soften">> -<<set _effectiveness -= $activeSlave.intelligence*15>> +<<set _effectiveness -= ($activeSlave.intelligence+$activeSlave.intelligenceImplant)/3>> <<set $activeSlave.training += _effectiveness>> She punishes $activeSlave.slaveName whenever she sees her breaking the rules yet does her best to retain what makes the slave special, <<if $activeSlave.training > 150>> diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw index c6dc4bce4d893a9b12e9257f6609197a38b28fd4..eceeb378dcf2a895b8ce3f22e77f5e85b12f660e 100644 --- a/src/uncategorized/main.tw +++ b/src/uncategorized/main.tw @@ -42,8 +42,8 @@ <br><br>@@.red; ERROR: The following variables are NaN! Please report this.@@<br> <<for _main = 0; _main < $NaNArray.length; _main++>> $NaNArray[_main] <br> - <</for>><br> - <<link "Hide NaN variables until next week">><<replace #NaNArray>><<set $NaNArray = []>><</replace>><</link>> + <</for>> + <<link "Hide NaN variables until next week">><<replace #NaNArray>><<set $NaNArray = []>><</replace>><</link>><br> <</if>> </span> /* end extra sanity checks and repair */ @@ -212,6 +212,9 @@ __''MAIN MENU''__ //[[Summary Options]]// <<if canDoAnal($slaves[_BG])>> | <<print "[[Use her holes|FButt][$activeSlave = $slaves["+_BG+"],$nextButton = _j, $nextLink = _k, $returnTo = _l]]">> <</if>> + <<if $slaves[_BG].belly >= 300000>> + | <<print "[[Fuck her over her belly|FBellyFuck][$activeSlave = $slaves["+_BG+"], $nextButton = _j, $nextLink = _k, $returnTo = _l]]">> + <</if>> <</if>> /*check*/ <<if canPenetrate($slaves[_BG])>> @@ -290,6 +293,11 @@ __''MAIN MENU''__ //[[Summary Options]]// <<if canDoAnal($slaves[$i])>> | <<print "[[Fuck her ass|FAnus][$activeSlave = $slaves["+$i+"], $nextButton = _j, $nextLink = _k, $returnTo = _l]]">> <</if>> + <<if canDoVaginal($slaves[$i]) || canDoAnal($slaves[$i])>> + <<if $slaves[$i].belly >= 300000>> + | <<print "[[Fuck her over her belly|FBellyFuck][$activeSlave = $slaves["+$i+"], $nextButton = _j, $nextLink = _k, $returnTo = _l]]">> + <</if>> + <</if>> /*check*/ <<if canPenetrate($slaves[$i])>> | <<print "[[Ride her|FDick][$activeSlave = $slaves["+$i+"],$nextButton = _j,$nextLink = _k,$returnTo = _l]]">> @@ -307,6 +315,11 @@ __''MAIN MENU''__ //[[Summary Options]]// <<if canDoAnal($slaves[$i])>> | <<print "[[Fuck her ass|FAnus][$activeSlave = $slaves["+$i+"], $nextButton = _j, $nextLink = _k, $returnTo = _l]]">> <</if>> + <<if canDoVaginal($slaves[$i]) || canDoAnal($slaves[$i])>> + <<if $slaves[$i].belly >= 300000>> + | <<print "[[Fuck her over her belly|FBellyFuck][$activeSlave = $slaves["+$i+"], $nextButton = _j, $nextLink = _k, $returnTo = _l]]">> + <</if>> + <</if>> /*check*/ <<if canPenetrate($slaves[$i])>> | <<print "[[Ride her|FDick][$activeSlave = $slaves["+$i+"],$nextButton = _j,$nextLink = _k,$returnTo = _l]]">> @@ -494,6 +507,11 @@ Filter by assignment: | <<if canDoAnal($slaves[$i])>> | <<print "[[Fuck her ass|FAnus][$activeSlave = $slaves["+$i+"], $nextButton = _j, $nextLink = _k, $returnTo = _l]]">> <</if>> + <<if canDoVaginal($slaves[$i]) || canDoAnal($slaves[$i])>> + <<if $slaves[$i].belly >= 300000>> + | <<print "[[Fuck her over her belly|FBellyFuck][$activeSlave = $slaves["+$i+"], $nextButton = _j, $nextLink = _k, $returnTo = _l]]">> + <</if>> + <</if>> /*check*/ <<if canPenetrate($slaves[$i])>> | <<print "[[Ride her|FDick][$activeSlave = $slaves["+$i+"],$nextButton = _j,$nextLink = _k,$returnTo = _l]]">> @@ -511,6 +529,11 @@ Filter by assignment: | <<if canDoAnal($slaves[$i])>> | <<print "[[Fuck her ass|FAnus][$activeSlave = $slaves["+$i+"], $nextButton = _j, $nextLink = _k, $returnTo = _l]]">> <</if>> + <<if canDoVaginal($slaves[$i]) || canDoAnal($slaves[$i])>> + <<if $slaves[$i].belly >= 300000>> + | <<print "[[Fuck her over her belly|FBellyFuck][$activeSlave = $slaves["+$i+"], $nextButton = _j, $nextLink = _k, $returnTo = _l]]">> + <</if>> + <</if>> /*check*/ <<if canPenetrate($slaves[$i])>> | <<print "[[Ride her|FDick][$activeSlave = $slaves["+$i+"],$nextButton = _j,$nextLink = _k,$returnTo = _l]]">> @@ -539,9 +562,17 @@ Filter by assignment: | <<if canDoAnal($slaves[_BG])>> | <<print "[[Use her holes|FButt][$activeSlave = $slaves["+_BG+"],$nextButton = _j, $nextLink = _k, $returnTo = _l]]">> <</if>> + <<if $slaves[_BG].belly >= 300000>> + | <<print "[[Fuck her over her belly|FBellyFuck][$activeSlave = $slaves["+_BG+"], $nextButton = _j, $nextLink = _k, $returnTo = _l]]">> + <</if>> + <</if>> + <<if canDoVaginal($slaves[_BG]) || canDoAnal($slaves[_BG])>> + <<if $slaves[_BG].belly >= 300000>> + | <<print "[[Fuck her over her belly|FBellyFuck][$activeSlave = $slaves["+_BG+"], $nextButton = _j, $nextLink = _k, $returnTo = _l]]">> + <</if>> <</if>> - /*check*/ - <<if canPenetrate($slaves[_BG])>> + /*check*/ + <<if canPenetrate($slaves[_BG])>> | <<print "[[Ride her|FDick][$activeSlave = $slaves["+_BG+"], $nextButton = _j, $nextLink = _k, $returnTo = _l]]">> <</if>> <<if canDoAnal($slaves[_BG])>> diff --git a/src/uncategorized/manageArcology.tw b/src/uncategorized/manageArcology.tw index 85859cbdd1c6be9f2a6739b7642b534bb304f060..efa20e9d35bb9e5c38fad934a0e943b83c3fc48f 100644 --- a/src/uncategorized/manageArcology.tw +++ b/src/uncategorized/manageArcology.tw @@ -303,3 +303,7 @@ During all battles you lost a total of <<print commaNum($militiaTotalCasualties <br><br> Your arcology is named <<textbox "$arcologies[0].name" $arcologies[0].name "Manage Arcology">> + +<<if $cheatMode == 1 && $seeExtreme == 1>> + <br><br>[[Host Dinner Party|Dinner Party Preperations]] +<</if>> diff --git a/src/uncategorized/neighborsDevelopment.tw b/src/uncategorized/neighborsDevelopment.tw index c5841710b5ef971828d1b966cb4a18f593f42806..3015f7f46ce9e14842e3b3ed0fb5f12dc237bcd2 100644 --- a/src/uncategorized/neighborsDevelopment.tw +++ b/src/uncategorized/neighborsDevelopment.tw @@ -681,6 +681,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSSupremacist = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSSupremacist != "unset">> <<if $corpIncorporated == 1>> <<if $captureUpgradeRace != "unselected">> <<if $captureUpgradeRace != "none">> @@ -692,6 +693,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <</if>> <</if>> <</if>> + <</if>> <</if>> <<if $arcologies[$i].FSSubjugationist != "unset">> @@ -750,6 +752,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSSubjugationist = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSSubjugationist != "unset">> <<if $corpIncorporated == 1>> <<if $captureUpgradeRace == $arcologies[$i].FSSubjugationistRace>> It's a @@.lightgreen;good market@@ for your corporation's $arcologies[$i].FSSubjugationistRace slaves, improving sales and helping social progress. @@ -757,6 +760,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus>> <</if>> <</if>> + <</if>> <</if>> <<if $arcologies[$i].FSRepopulationFocus != "unset">> @@ -790,6 +794,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSRepopulationFocus = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSRepopulationFocus != "unset">> <<if $corpIncorporated == 1>> <<if $drugUpgradeInjectionTwo == "pastoral">> It's a @@.lightgreen;good market@@ for your corporation's milky cows, improving sales and helping social progress. @@ -801,6 +806,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus>> <</if>> <</if>> + <</if>> <<elseif $arcologies[$i].FSRestart != "unset">> <<set _societiesAdopted += 1>> <<if $arcologies[$i].direction != 0>> @@ -833,6 +839,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSRestart = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSRestart != "unset">> <<if $corpIncorporated == 1>> <<if $surgicalUpgradeGenitalia == "gelded">> It's an @@.lightgreen;excellent market@@ for your corporation's neutered slavegirls, improving sales and helping social progress. @@ -848,6 +855,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus>> <</if>> <</if>> + <</if>> <</if>> <<if $arcologies[$i].FSGenderRadicalist != "unset">> @@ -882,6 +890,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSGenderRadicalist = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSGenderRadicalist != "unset">> <<if $corpIncorporated == 1>> <<if $drugUpgradeHormones != "unselected">> <<if $drugUpgradeHormones != "none">> @@ -905,6 +914,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus>> <</if>> <</if>> + <</if>> <<elseif $arcologies[$i].FSGenderFundamentalist != "unset">> <<set _societiesAdopted += 1>> <<if $arcologies[$i].direction != 0>> @@ -936,6 +946,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSGenderFundamentalist = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSGenderFundamentalist != "unset">> <<if $corpIncorporated == 1>> <<if ($captureUpgradeGender == "XX") || ($seeDicks == 0)>> It's a @@.lightgreen;good market@@ for your corporation's enslaved females, improving sales and helping social progress. @@ -943,6 +954,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus>> <</if>> <</if>> + <</if>> <</if>> <<if $arcologies[$i].FSPaternalist != "unset">> @@ -976,6 +988,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSPaternalist = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSPaternalist != "unset">> <<if $corpIncorporated == 1>> <<if $generalUpgradeBreaking == "care">> It's a @@.lightgreen;good market@@ for your corporation's well-treated companions, improving sales and helping social progress. @@ -988,6 +1001,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus>> <</if>> <</if>> + <</if>> <<elseif $arcologies[$i].FSDegradationist != "unset">> <<set _societiesAdopted += 1>> <<if $arcologies[$i].direction != 0>> @@ -1019,6 +1033,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSDegradationist = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSDegradationist != "unset">> <<if $corpIncorporated == 1>> <<if $generalUpgradeBreaking == "brutality">> It's a @@.lightgreen;good market@@ for your corporation's thoroughly terrified slaves, improving sales and helping social progress. @@ -1035,6 +1050,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus>> <</if>> <</if>> + <</if>> <</if>> <<if $arcologies[$i].FSBodyPurist != "unset">> @@ -1068,6 +1084,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSBodyPurist = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSBodyPurist != "unset">> <<if $corpIncorporated == 1>> <<if ($surgicalUpgradeImplants == "unselected") || ($surgicalUpgradeImplants == "none")>> <<if $surgicalUpgradeGenitalia != "fucknugget">> @@ -1077,6 +1094,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <</if>> <</if>> <</if>> + <</if>> <<elseif $arcologies[$i].FSTransformationFetishist != "unset">> <<set _societiesAdopted += 1>> <<if $arcologies[$i].direction != 0>> @@ -1109,6 +1127,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSTransformationFetishist = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSTransformationFetishist != "unset">> <<if $corpIncorporated == 1>> <<if $surgicalUpgradeImplants == "applied">> It's a @@.lightgreen;good market@@ for your corporation's implanted slaves, improving sales and helping social progress. @@ -1120,6 +1139,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus*2>> <</if>> <</if>> + <</if>> <</if>> <<if $arcologies[$i].FSYouthPreferentialist != "unset">> @@ -1154,6 +1174,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSYouthPreferentialist = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSYouthPreferentialist != "unset">> <<if $corpIncorporated == 1>> <<if $captureUpgradeAge == "young">> It's a @@.lightgreen;good market@@ for your corporation's young slaves, improving sales and helping social progress. @@ -1161,6 +1182,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus>> <</if>> <</if>> + <</if>> <<elseif $arcologies[$i].FSMaturityPreferentialist != "unset">> <<set _societiesAdopted += 1>> <<if $arcologies[$i].direction != 0>> @@ -1192,6 +1214,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSMaturityPreferentialist = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSMaturityPreferentialist != "unset">> <<if $corpIncorporated == 1>> <<if $captureUpgradeAge == "old">> It's a @@.lightgreen;good market@@ for your corporation's enslaved MILFs, improving sales and helping social progress. @@ -1199,6 +1222,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus>> <</if>> <</if>> + <</if>> <</if>> <<if $arcologies[$i].FSSlimnessEnthusiast != "unset">> @@ -1233,6 +1257,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSSlimnessEnthusiast = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSSlimnessEnthusiast != "unset">> <<if $corpIncorporated == 1>> <<if $drugUpgradeInjectionOne != "huge">> <<if $drugUpgradeInjectionOne != "tasteful">> @@ -1248,6 +1273,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <</if>> <</if>> <</if>> + <</if>> <<elseif $arcologies[$i].FSAssetExpansionist != "unset">> <<set _societiesAdopted += 1>> <<if $arcologies[$i].direction != 0>> @@ -1280,6 +1306,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSAssetExpansionist = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSAssetExpansionist != "unset">> <<if $corpIncorporated == 1>> <<if $drugUpgradeInjectionTwo == "supermassive">> It's an @@.lightgreen;excellent market@@ for your corporation's world-class tits and ass, improving sales and helping social progress. @@ -1295,6 +1322,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus>> <</if>> <</if>> + <</if>> <</if>> <<if $arcologies[$i].FSPastoralist != "unset">> @@ -1325,6 +1353,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSPastoralist = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSPastoralist != "unset">> <<if $corpIncorporated == 1>> <<if $drugUpgradeInjectionTwo == "pastoral">> It's an @@.lightgreen;excellent market@@ for your corporation's world-class milk producers, improving sales and helping social progress. @@ -1332,6 +1361,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus*2>> <</if>> <</if>> + <</if>> <<elseif $arcologies[$i].FSCummunism != "unset">> <<set _societiesAdopted += 1>> <<if $arcologies[$i].direction != 0>> @@ -1363,6 +1393,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSCummunism = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSCummunism != "unset">> <<if $corpIncorporated == 1>> <<if $drugUpgradeInjectionTwo == "pastoral">> It's an @@.lightgreen;excellent market@@ for your corporation's world-class cum producers, improving sales and helping social progress. @@ -1374,6 +1405,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus>> <</if>> <</if>> + <</if>> <</if>> <<if $arcologies[$i].FSPhysicalIdealist != "unset">> @@ -1407,6 +1439,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSPhysicalIdealist = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSPhysicalIdealist != "unset">> <<if $corpIncorporated == 1>> <<if $generalUpgradeMuscle == "ripped">> It's an @@.lightgreen;excellent market@@ for your corporation's ripped chicks, improving sales and helping social progress. @@ -1418,6 +1451,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus>> <</if>> <</if>> + <</if>> <<elseif $arcologies[$i].FSHedonisticDecadence != "unset">> <<set _societiesAdopted += 1>> <<if $arcologies[$i].direction != 0>> @@ -1450,6 +1484,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSHedonisticDecadence = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSHedonisticDecadence != "unset">> <<if $corpIncorporated == 1>> <<if $generalUpgradeBreaking == "care">> It's an @@.lightgreen;excellent market@@ for your corporation's well kept, happy slaves, improving sales and helping social progress. @@ -1461,6 +1496,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus>> <</if>> <</if>> + <</if>> <</if>> <<if $arcologies[$i].FSIncestFetishist != "unset">> @@ -1491,6 +1527,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSIncestFetishist = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSIncestFetishist != "unset">> <<if $corpIncorporated == 1>> <<if $captureUpgradeAge == "old">> It's a @@.lightgreen;good market@@ for your corporation's motherly slaves, especially those that look like peoples mothers, improving sales and helping social progress. @@ -1498,6 +1535,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus>> <</if>> <</if>> + <</if>> <</if>> <<if $arcologies[$i].FSChattelReligionist != "unset">> @@ -1528,6 +1566,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSChattelReligionist = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSChattelReligionist != "unset">> <<if $corpIncorporated == 1>> <<if $trainingUpgradeSexEd == "highly skilled">> It's an @@.lightgreen;excellent market@@ for your corporation's holy sex slaves, improving sales and helping social progress. @@ -1539,6 +1578,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus>> <</if>> <</if>> + <</if>> <</if>> <<if $arcologies[$i].FSRomanRevivalist != "unset">> @@ -1584,6 +1624,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSRomanRevivalist = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSRomanRevivalist != "unset">> <<if $corpIncorporated == 1>> <<if $trainingUpgradeEducation == "basic">> It's a @@.lightgreen;good market@@ for your corporation's properly educated slaves, improving sales and helping social progress. @@ -1591,6 +1632,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus>> <</if>> <</if>> + <</if>> <<elseif $arcologies[$i].FSAztecRevivalist != "unset">> <<set _societiesAdopted += 1>> <<if $arcologies[$i].direction != 0>> @@ -1634,6 +1676,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSAztecRevivalist = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSAztecRevivalist != "unset">> <<if $corpIncorporated == 1>> <<if $trainingUpgradeAccent == "accents">> It's a @@.lightgreen;good market@@ for your corporation's lovely mix of slave accents, improving sales and helping social progress. @@ -1641,6 +1684,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus>> <</if>> <</if>> + <</if>> <<elseif $arcologies[$i].FSEgyptianRevivalist != "unset">> <<set _societiesAdopted += 1>> <<if $arcologies[$i].direction != 0>> @@ -1684,6 +1728,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSEgyptianRevivalist = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSEgyptianRevivalist != "unset">> <<if $corpIncorporated == 1>> <<if $trainingUpgradeAccent == "accents">> It's a @@.lightgreen;good market@@ for your corporation's lovely mix of slave accents, improving sales and helping social progress. @@ -1691,6 +1736,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus>> <</if>> <</if>> + <</if>> <<elseif $arcologies[$i].FSEdoRevivalist != "unset">> <<set _societiesAdopted += 1>> <<if $arcologies[$i].direction != 0>> @@ -1734,6 +1780,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSEdoRevivalist = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSEdoRevivalist != "unset">> <<if $corpIncorporated == 1>> <<if $trainingUpgradeAccent == "eliminate">> It's a @@.lightgreen;good market@@ for your corporation's linguistically perfect slaves, improving sales and helping social progress. @@ -1741,6 +1788,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus>> <</if>> <</if>> + <</if>> <<elseif $arcologies[$i].FSArabianRevivalist != "unset">> <<set _societiesAdopted += 1>> <<if $arcologies[$i].direction != 0>> @@ -1784,6 +1832,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSArabianRevivalist = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSArabianRevivalist != "unset">> <<if $corpIncorporated == 1>> <<if $entrapmentUpgradeDevotionTwo == "devotion">> It's an @@.lightgreen;excellent market@@ for your corporation's harem-ready devotees, improving sales and helping social progress. @@ -1795,6 +1844,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus>> <</if>> <</if>> + <</if>> <<elseif $arcologies[$i].FSChineseRevivalist != "unset">> <<set _societiesAdopted += 1>> <<if $arcologies[$i].direction != 0>> @@ -1838,6 +1888,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSChineseRevivalist = "unset">> <</if>> <</if>> + <<if $arcologies[$i].FSChineseRevivalist != "unset">> <<if $corpIncorporated == 1>> <<if $entrapmentUpgradeIntelligence == "intelligent">> It's a @@.lightgreen;good market@@ for your corporation's intelligent head girl prospects, improving sales and helping social progress. @@ -1845,6 +1896,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $corpCash += _corpBonus>> <</if>> <</if>> + <</if>> <</if>> /* FUTURE SOCIETY ADOPTION */ diff --git a/src/uncategorized/nextWeek.tw b/src/uncategorized/nextWeek.tw index 7d5a7b7da8c31b65490cf25e5dd9dfa00fd34191..249d530cc45a6205eee21b59433642af1a95b71e 100644 --- a/src/uncategorized/nextWeek.tw +++ b/src/uncategorized/nextWeek.tw @@ -158,8 +158,10 @@ <<if $slaves[_i].pornTypePregnancy > 0>><<set $pornStarPregnancySluts++>><</if>> <</if>> <</for>> -<<set $averageTrust = $averageTrust/_slavesContributing>> -<<set $averageDevotion = $averageDevotion/_slavesContributing>> +<<if _slavesContributing != 0>> + <<set $averageTrust = $averageTrust/_slavesContributing>> + <<set $averageDevotion = $averageDevotion/_slavesContributing>> +<</if>> <<set $enduringTrust = ($averageTrust+($enduringTrust*3))/4>> <<set $enduringDevotion = ($averageDevotion+($enduringDevotion*3))/4>> diff --git a/src/uncategorized/ptWorkaround.tw b/src/uncategorized/ptWorkaround.tw index d1e9f78d60fa99bfa74f39d3a8f7454d1da20fb9..f7a0430b2593768636d5ab010eed29d049c5b942 100644 --- a/src/uncategorized/ptWorkaround.tw +++ b/src/uncategorized/ptWorkaround.tw @@ -9,6 +9,7 @@ <</if>> ''__@@.pink;$activeSlave.slaveName@@__'' when she isn't otherwise occupied. +<<set $activeSlave.training = Math.clamp($activeSlave.training, 0, 100)>> <<set $activeSlave.training += 80-($activeSlave.intelligence+$activeSlave.intelligenceImplant)/5+(($activeSlave.devotion+$activeSlave.trust)/10)>> <<if ($PC.slaving >= 100) && $personalAttention.length == 1>> /* negate bonus when splitting focus among slaves */ <<set $activeSlave.training += 20>> diff --git a/src/uncategorized/reNickname.tw b/src/uncategorized/reNickname.tw index 2bb704ee815c3bbed841ee413a4d0e111b098e8b..349c2a3a197efcf3bed0ad5431ee57f047d3e5dd 100644 --- a/src/uncategorized/reNickname.tw +++ b/src/uncategorized/reNickname.tw @@ -632,7 +632,7 @@ <<case "Swedish">> <<set $nickname = either("'Gothenburg'", "'Ikea'", "'Norse'", "'Stockholm'", "'Swede'", "'Sweden Yes'", "'Swedish'")>> <<case "Swiss">> - <<set $nickname = either("'Alpine'", "'Banker'", "'Bern'", "'Geneva'", "Helvetia'", "'Neutral'", "'Numbered Account'", "'Schlampe'", "'Swiss'", "'Swiss Miss'", "'Zürich'")>> + <<set $nickname = either("'Alpine'", "'Banker'", "'Bern'", "'Geneva'", "'Helvetia'", "'Neutral'", "'Numbered Account'", "'Schlampe'", "'Swiss'", "'Swiss Miss'", "'Zürich'")>> <<case "Syrian">> <<set $nickname = either("'Aleppo'", "'Assad'", "'Damascus'", "'Syrian'")>> <<case "Taiwanese">> diff --git a/src/uncategorized/reputation.tw b/src/uncategorized/reputation.tw index 29270d86d13bfeefaf85ec52055884b8a3d30a37..ec4c37294aaa0cf64b15834e5539240f4f574294 100644 --- a/src/uncategorized/reputation.tw +++ b/src/uncategorized/reputation.tw @@ -405,7 +405,7 @@ On formal occasions, you are announced as $PCTitle. <</if>> <<if $PCSlutContacts == 2>> - You are actively staring in pornographic videos. While they are rather exclusive, @@.red;some still leak out to the public,@@ harming your image. + You are actively starring in pornographic videos. While they are rather exclusive, @@.red;some still leak out to the public,@@ harming your image. <<set $rep -= 50>> <<if isPlayerFertile($PC)>> That's not all that leaks out of you, considering all your shoots are rubber free. diff --git a/src/uncategorized/saHormoneEffects.tw b/src/uncategorized/saHormoneEffects.tw index 55d13444889b2d56317be75119f2617ca3158ef1..f2046b5cfadc428e24ad042cd73f8e0f1d4b1466 100644 --- a/src/uncategorized/saHormoneEffects.tw +++ b/src/uncategorized/saHormoneEffects.tw @@ -93,7 +93,7 @@ <</if>> <<if ($slaves[$i].faceShape == "masculine")>> - Hormonal effects cause @@.orange;$his face to soften into <<if $slaves[$i].inducedNCS == 1>><childlike <</if>>androgyny.@@ + Hormonal effects cause @@.orange;$his face to soften into <<if $slaves[$i].inducedNCS == 1>>childlike <</if>>androgyny.@@ <<set $slaves[$i].faceShape = "androgynous">> <<elseif ($slaves[$i].faceShape == "androgynous")>> Hormonal effects cause @@.lime;$his face to soften into <<if $slaves[$i].inducedNCS == 1>>childlike normalcy<<else>>femininity<</if>>.@@ diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw index f593796ade066abfeab38d339d64dc01e8fb91a3..b69c8e18ebbcdb6ab33b1dca59fdc6c8c2640927 100644 --- a/src/uncategorized/saLongTermEffects.tw +++ b/src/uncategorized/saLongTermEffects.tw @@ -8016,7 +8016,7 @@ /* saPorn */ <<if $slaves[$i].pornPrestige == 3>> - $He is the whore people envision of when they think of $slaves[$i].pornFameType porn. $His ever presence on the internet @@.green;boosts $his owner's reputation.@@ + $He is the whore people envision when they think of $slaves[$i].pornFameType porn. $His omnipresence on the internet @@.green;boosts $his owner's reputation.@@ <<set $repGain += (100*$slaves[$i].pornPrestige)>> <<set _donations = Math.floor($slaves[$i].pornFame/(random(13,20)))+(random(-5000,5000))>> <<if _donations > 0>> @@ -8117,10 +8117,10 @@ <</if>> <</if>> - <<if $dangerousPregancy != 0 && $slaves[$i].labor != 1>> + <<if $dangerousPregnancy != 0 && $slaves[$i].labor != 1>> <<if ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && $slaves[$i].pregAdaptation < 500 && $slaves[$i].broodmother < 1>> <<set _miscarriageChance = -10>> - <<set _miscarriageChance -= (($slaves[$i].bellyPreg/1000)-$slaves[$i].pregAdaptation)>> /* this could use to not be linear */ + <<set _miscarriageChance += (($slaves[$i].bellyPreg/1000)-$slaves[$i].pregAdaptation)>> /* this could use to not be linear */ <<if $slaves[$i].inflation > 0>> <<set _miscarriageChance += 10>> <</if>> @@ -8133,7 +8133,6 @@ <<elseif $slaves[$i].health > 80>> <<set _miscarriageChance -= ($slaves[$i].health/10)>> <</if>> - <<set _miscarriageChance += ($slaves[$i].chem/10)>> <<if $slaves[$i].weight < -50>> <<set _miscarriageChance -= ($slaves[$i].weight)>> <</if>> @@ -8155,6 +8154,8 @@ <</if>> <<if $slaves[$i].pregControl == "slow gestation">> <<set _miscarriageChance -= 100>> + <<elseif $slaves[$i].pregControl == "labor supressors">> + <<set _miscarriageChance -= 10000>> <<elseif $slaves[$i].pregControl == "speed up">> <<if _miscarriageChance > 0>> <<set _miscarriageChance *= 2>> @@ -8163,7 +8164,7 @@ <<set _miscarriageChance = Math.round(_miscarriageChance)>> <<if _miscarriageChance > random(0,100)>> <<set _chance = random(1,100)>> - <<if $slaves[$i].preg > 36>> + <<if $slaves[$i].preg >= 30>> <<set $slaves[$i].labor = 1, $birthee = 1>> <<set _miscarriage = 1>> <<elseif $slaves[$i].preg > 27>> @@ -8241,6 +8242,22 @@ <<if $slaves[$i].bellyAccessory == "support band">> <<set _burstChance -= 10>> <</if>> + <<if $slaves[$i].pregControl == "slow down" && _burstChance > 0>> + <<set _burstChance -= 20>> + <</if>> + <<if $slaves[$i].assignment == "get treatment in the clinic">> + <<if $Nurse.ID > 0>> + <<set _burstChance -= 100>> + Extremly fast actions of nurse $Nurse.slaveName saved $his live few times. @@.red;$His womb giving up!@@ + <<else>> + <<set _burstChance -= 30>> + Few times automatic monitor in clinic detected critical state and called junior medical staff. They manage to save $his live through this emergency cases. @@.red;$His womb giving up!@@ + <</if>> + <</if>> + <<if $slaves[$i].assignment == "work in the dairy" && $dairyPregSetting == 3>> + <<set _burstChance -= 50>> + Automatic monitor in $his restrains detected critical state, and used special adaptive belly corset to release some tension and support @@.red;$his breaking womb@@. + <</if>> <<if $slaves[$i].pregControl == "speed up">> <<if _burstChance > 0>> <<set _burstChance *= 4>> @@ -8249,6 +8266,8 @@ <<set _burstChance = Math.round(_burstChance)>> <<if _burstChance > random(0,100)>> <<set $slaves[$i].burst = 1>> + <<else>> + Constant @@.red;sharp pains@@ from $his womb is a strong symptom of @@.red;$his body being at it's last limit@@. <</if>> <</if>> <</if>> diff --git a/src/uncategorized/saServeThePublic.tw b/src/uncategorized/saServeThePublic.tw index 66934dc3b5201517cf77bb194f266f4b0df5b902..03ad25b2cb359cf5e39c5c9a7294dd539b72196a 100644 --- a/src/uncategorized/saServeThePublic.tw +++ b/src/uncategorized/saServeThePublic.tw @@ -215,7 +215,7 @@ the public. <</if>> <<set $beauty = Math.trunc($beauty*$beautyMultiplier)>> -$His appearance attracted $beauty members of the public (<<print Math.trunc($beauty/7)>> a day)<<if $beauty > 160>>, so many that <<if canDoVaginal($slaves[$i]) && canDoAnal($slaves[$i])>>each of $his holes were<<elseif canDoVaginal($slaves[$i]) || canDoAnal($slaves[$i])>>each of $his available holes were<<else>>$his mouth and anywhere else a dick could fit were<</if>> often filled by more than one cock<<elseif $beauty > 140>>, so many that $he spent much of $his time getting gangbanged<<elseif $beauty > 120>>, so many that citizens often <<if canDoAnal($slaves[$i]) || canDoVaginal($slaves[$i])>>spitroasted<<else>>double-teamed<</if>> the slut<<elseif $beauty > 100>>, so many that $he frequently had sex with multiple citizens at once<<elseif $beauty > 70>>, so many that $he occasionally had sex with multiple citizens at once<</if>>. Most of them +$His appearance attracted $beauty members of the public (<<print Math.trunc($beauty/7)>> a day)<<if $beauty > 160>>, so many that <<if canDoVaginal($slaves[$i]) && canDoAnal($slaves[$i])>>each of $his holes was<<elseif canDoVaginal($slaves[$i]) || canDoAnal($slaves[$i])>>each of $his available holes was<<else>>$his mouth and anywhere else a dick could fit was<</if>> often filled by more than one cock<<elseif $beauty > 140>>, so many that $he spent much of $his time getting gangbanged<<elseif $beauty > 120>>, so many that citizens often <<if canDoAnal($slaves[$i]) || canDoVaginal($slaves[$i])>>spitroasted<<else>>double-teamed<</if>> the slut<<elseif $beauty > 100>>, so many that $he frequently had sex with multiple citizens at once<<elseif $beauty > 70>>, so many that $he occasionally had sex with multiple citizens at once<</if>>. Most of them <<if $FResult > 15>> were putty in $his hands. <<elseif $FResult > 10>> @@ -828,7 +828,7 @@ $His appearance attracted $beauty members of the public (<<print Math.trunc($bea <</if>> <<if $slaves[$i].pornPrestige > 2>> - Patrons line up for the chance to spend time with the face of $slaves[$i].pornType porn. + Patrons line up for the chance to spend time with the face of $slaves[$i].pornFameType porn. <<elseif $slaves[$i].pornPrestige > 1>> $He has a sizable fanbase, one that is eager to spend time with $him. <<elseif $slaves[$i].pornPrestige > 0>> diff --git a/src/uncategorized/saWhore.tw b/src/uncategorized/saWhore.tw index d9ae28d165369cf7ce4b088a00a0313b96ee0999..7ac000d53db8c34b47cc226c17e7c295ac09ae7a 100644 --- a/src/uncategorized/saWhore.tw +++ b/src/uncategorized/saWhore.tw @@ -212,7 +212,7 @@ $his body. <</if>> <<set $beauty = Math.trunc($beauty*$beautyMultiplier)>> -$His appearance attracted $beauty customers (<<print Math.trunc($beauty/7)>> a day)<<if $beauty > 160>>, so many that <<if canDoVaginal($slaves[$i]) && canDoAnal($slaves[$i])>>each of $his holes were<<elseif canDoVaginal($slaves[$i]) || canDoAnal($slaves[$i])>>each of $his available holes were<<else>>$his mouth and anywhere else a cock could fit were<</if>> often filled by more than one cock<<elseif $beauty > 140>>, so many that $he spent much of $his time getting gangbanged<<elseif $beauty > 120>>, so many that customers often <<if canDoAnal($slaves[$i]) || canDoVaginal($slaves[$i])>>spitroasted<<else>>double-teamed<</if>> the slut<<elseif $beauty > 100>>, so many that $he frequently had sex with multiple customers at once<<elseif $beauty > 70>>, so many that $he occasionally had sex with multiple customers at once<</if>>. They paid <<print cashFormat($FResult)>> on average. +$His appearance attracted $beauty customers (<<print Math.trunc($beauty/7)>> a day)<<if $beauty > 160>>, so many that <<if canDoVaginal($slaves[$i]) && canDoAnal($slaves[$i])>>each of $his holes was<<elseif canDoVaginal($slaves[$i]) || canDoAnal($slaves[$i])>>each of $his available holes was<<else>>$his mouth and anywhere else a cock could fit was<</if>> often filled by more than one cock<<elseif $beauty > 140>>, so many that $he spent much of $his time getting gangbanged<<elseif $beauty > 120>>, so many that customers often <<if canDoAnal($slaves[$i]) || canDoVaginal($slaves[$i])>>spitroasted<<else>>double-teamed<</if>> the slut<<elseif $beauty > 100>>, so many that $he frequently had sex with multiple customers at once<<elseif $beauty > 70>>, so many that $he occasionally had sex with multiple customers at once<</if>>. They paid <<print cashFormat($FResult)>> on average. <<set _incomeStats.customers = $beauty>> <<if $seeAge == 1>> @@ -837,7 +837,7 @@ $His appearance attracted $beauty customers (<<print Math.trunc($beauty/7)>> a d <</if>> <<if $slaves[$i].pornPrestige > 2>> - Customers line up for the chance to buy time with the face of $slaves[$i].pornType porn. + Customers line up for the chance to buy time with the face of $slaves[$i].pornFameType porn. <<elseif $slaves[$i].pornPrestige > 1>> $He has a sizable fanbase, one that is eager to buy time with $him. <<elseif $slaves[$i].pornPrestige > 0>> diff --git a/src/uncategorized/sellSlave.tw b/src/uncategorized/sellSlave.tw index fcdd3e3568f85b5612a610889cde58a010038123..0e2e0633dc9b83ab4ab68717fa346e9206fb54b4 100644 --- a/src/uncategorized/sellSlave.tw +++ b/src/uncategorized/sellSlave.tw @@ -472,11 +472,11 @@ A reputable slave appraiser arrives promptly to inspect $him and certify $his qu <</if>> <<if $activeSlave.pornPrestige == 3>> - $He's pretty popular in $activeSlave.pornType smut, isn't $he? Buyers will be lining up for $him. + $He's pretty popular in $activeSlave.pornFameType smut, isn't $he? Buyers will be lining up for $him. <<elseif $activeSlave.pornPrestige == 2>> - $He's gained quite the following in $activeSlave.pornType smut. In fact, I've even seen some of $his smut; buyers will flock to $him. + $He's gained quite the following in $activeSlave.pornFameType smut. In fact, I've even seen some of $his smut; buyers will flock to $him. <<elseif $activeSlave.pornPrestige == 1>> - $He's got a small fanbase in $activeSlave.pornType smut. Who knows? Maybe one of them will want $him all to herself? + $He's got a small fanbase in $activeSlave.pornFameType smut. Who knows? Maybe one of them will want $him all to herself? <</if>> <<if $activeSlave.devotion > 95>> diff --git a/src/uncategorized/servantsQuarters.tw b/src/uncategorized/servantsQuarters.tw index 0d647dc1b6f41eb878d824135766964617c06f06..4d158c7aeab713b4f019d8425ec05ed2a6b7c3c3 100644 --- a/src/uncategorized/servantsQuarters.tw +++ b/src/uncategorized/servantsQuarters.tw @@ -63,7 +63,7 @@ $servantsQuartersNameCaps <<if $servantsQuartersSlaves > 2>> $servantsQuartersNameCaps are busy with hurrying slaves. One shift of girls is eating, cleaning the quarters, and bathing. The second is sleeping, and the third is out in the penthouse cleaning and serving. <<elseif $servantsQuartersSlaves > 0>> - A few slaves are working out of servants' quarters. They must split their scant time between looking after their own needs and the superior needs of everyone else. + A few slaves are working out of the servants' quarters. They must split their scant time between looking after their own needs and the superior needs of everyone else. <<elseif $Stewardess != 0>> $Stewardess.slaveName is alone, and seems rather bereft without anyone to order around. <<else>> diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw index 5feb0dba2b9eee74ad8a6c123581455e79fe000b..aa717e41f09d2d05e8cd8e48c6a079f879835240 100644 --- a/src/uncategorized/slaveInteract.tw +++ b/src/uncategorized/slaveInteract.tw @@ -74,6 +74,16 @@ //Remove $his chastity belt if you wish to fuck $him// <</if>> <</if>> + <<if $activeSlave.bellyPreg >= 300000>> + <<if canDoVaginal($activeSlave) || canDoAnal($activeSlave)>> + | <<link "Fuck $him on $his belly">><<replace "#miniscene">><<include "FBellyFuck">><br> <</replace>><</link>> + <<if $pregInventions >= 1>> + | <<link "Fuck $him in $his maternity swing">><<replace "#miniscene">><<include "FMaternitySwing">><br> <</replace>><</link>> + | <<link "Fuck $him with the help of $his assistants">><<replace "#miniscene">><<include "FAssistedSex">><br> <</replace>><</link>> + | <<link "Fuck $him in your goo pool">><<replace "#miniscene">><<include "FPoolSex">><br> <</replace>><</link>> + <</if>> + <</if>> + <</if>> </span> <span id="analsexoption"> <<if canDoAnal($activeSlave)>> @@ -106,6 +116,7 @@ <<if ($activeSlave.vagina > -1)>> <<if canDoVaginal($activeSlave)>> | <<link "Grope $his pussy">><<replace "#miniscene">><<include "FondleVagina">><br> <</replace>><</link>> + | <<link "Eat $him out">><<replace "#miniscene">><<include "FLickPussy">><br> <</replace>><</link>> <</if>> <</if>> </span> @@ -1333,7 +1344,7 @@ Hormones: <strong><span id="hormones"> <br>Diet: <strong><span id="diet">$activeSlave.diet</span></strong>. <<link "Healthy">><<set $activeSlave.diet = "healthy">><<replace "#diet">>$activeSlave.diet<</replace>><</link>> -<<if ($activeSlave.health < 90) && ($activeSlave.health < 90) && ($dietCleanse == 1)>> +<<if ($activeSlave.health < 90) && ($activeSlave.chem >= 10) && ($dietCleanse == 1)>> | <<link "Cleanse">><<set $activeSlave.diet = "cleansing">><<replace "#diet">>$activeSlave.diet<</replace>><</link>> <<elseif ($dietCleanse == 1)>> | //$He is already healthy// @@ -1509,12 +1520,12 @@ Relationship rules: ''<span id="relationshipRules">$activeSlave.relationshipRule <<if _warn>><br>//Spending more than <<print cashFormat(5000)>> weekly will have no effect.//<</if>> <<if $PC.career == "escort">> <br> - You retain some contacts from your past life in the idustry that may be willing to cut you some discounts should you return to it. + You retain some contacts from your past life in the industry that may be willing to cut you some discounts should you return to it. <<if $PCSlutContacts != 2>> You are not baring your body for all to see. [[Star in porn for a discount|Slave Interact][$PCSlutContacts = 2]] <<else>> - You are staring in hardcore porn once more. + You are starring in hardcore porn once more. [[Stop doing porn for a discount|Slave Interact][$PCSlutContacts = 1]] <</if>> <</if>> diff --git a/src/uncategorized/slaveSold.tw b/src/uncategorized/slaveSold.tw index ce7eb6523eafd97252253800146a83e364661b79..e50005433c79f4b7e1ee5c1895f4cbe38bb7d2ad 100644 --- a/src/uncategorized/slaveSold.tw +++ b/src/uncategorized/slaveSold.tw @@ -1039,7 +1039,7 @@ <</for>> <<case "porn studio">> - $activeSlave.slaveName becomes a frequent sight in $activeSlave.pornType smut and attracts huge crowds with each public appearance. Your other apsiring porn stars @@.mediumaquamarine;try harder than ever@@ in the hopes of following in her prestigious footsteps. + $activeSlave.slaveName becomes a frequent sight in $activeSlave.pornFameType smut and attracts huge crowds with each public appearance. Your other aspiring porn stars @@.mediumaquamarine;try harder than ever@@ in the hopes of following in her prestigious footsteps. <<run clearSummaryCache()>> <<for _ss = 0; _ss < $slaves.length; _ss++>> <<if $slaves[_ss].pornPrestige > 0 && $slaves[_ss].pornPrestige < 3>> diff --git a/src/uncategorized/slaveSummary.tw b/src/uncategorized/slaveSummary.tw index cbfb2ef7b3835bb119938053eeea0a536d5d3599..c6bf3e0a7f681483b6a10546070490cad2eeb2b7 100644 --- a/src/uncategorized/slaveSummary.tw +++ b/src/uncategorized/slaveSummary.tw @@ -74,6 +74,7 @@ "Rules Slave Select": s => (($Flag == 0 && !ruleSlaveSelected(s, $currentRule)) || ($Flag != 0 && ruleSlaveSelected(s, $currentRule))), "Rules Slave Exclude": s => (($Flag == 0 && !ruleSlaveExcluded(s, $currentRule)) || ($Flag != 0 && ruleSlaveExcluded(s, $currentRule))), "Matchmaking": s => (s.devotion >= 100 && s.relationship == $activeSlave.relationship && s.ID != $activeSlave.ID), + "Dinner Party Preperations": s => (s.assignmentVisible == 1 && s.fuckdoll == 0), }>> <<set _Pass = passage(), _SL = $slaves.length, $assignTo = _Pass, _indexed = 0, _passagePreFilter = (s => s.assignment != "be your agent" && s.assignment != "live with your agent" && (!setup.passagePreFilters.hasOwnProperty(_Pass) || setup.passagePreFilters[_Pass](s))), @@ -581,6 +582,9 @@ <<case "Matchmaking">> <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if ($seeImages == 1) && ($seeSummaryImages == 1)>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>> [[_slaveName|Slave Interact][$activeSlave = $slaves[_ssi]]] +<<case "Dinner Party Preperations">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if ($seeImages == 1) && ($seeSummaryImages == 1)>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>> + [[_slaveName|Slave Interact][$activeSlave = $slaves[_ssi]]] <</switch>> <<run SlaveStatClamp(_Slave)>> @@ -956,6 +960,9 @@ will <<case "Matchmaking">> <br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>> <</if>> [[Match them|Matchmaking][$subSlave = $slaves[_ssi]]] +<<case "Dinner Party Preperations">> + <br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>> <</if>> + [[Make her the main course|Dinner Party Execution][$activeSlave = $slaves[_ssi]]] <</switch>> <</capture>> diff --git a/src/uncategorized/spa.tw b/src/uncategorized/spa.tw index cdee476ea3a55b52fe905f425b56e27634f46a67..fb1932f9d809a63cefcc1f00d89039daf0853fa7 100644 --- a/src/uncategorized/spa.tw +++ b/src/uncategorized/spa.tw @@ -131,7 +131,7 @@ $spaNameCaps <<link "''Let an obedient slave rest in $spaName''">> <<replace #ComingGoing>> <<resetAssignmentFilter>> - <<set $Flag to 0>> + <<set $Flag = 0>> <<include "Slave Summary">> <</replace>> <</link>> diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw index 3a4a70fb3fd87def498daed3d40d72b7b703938c..566c231c0d5cfb1984620a27e27d540f27ff18f5 100644 --- a/src/utility/miscWidgets.tw +++ b/src/utility/miscWidgets.tw @@ -417,10 +417,32 @@ <<if canDoAnal($activeSlave)>> | <<link "Use her holes">><<replace "#miniscene">><<include "FButt">><br> <</replace>><<SlaveInteractFertility>><</link>> <</if>> + <<if ($activeSlave.bellyPreg >= 300000)>> + | <<link "Fuck her on her belly">><<replace "#miniscene">><<include "FBellyFuck">><br> <</replace>><<SlaveInteractFertility>><</link>> + <</if>> + <<if $activeSlave.bellyPreg >= 300000 && $pregInventions >= 1>> + | <<link "Fuck her in her maternity swing">><<replace "#miniscene">><<include "FMaternitySwing">><br> <</replace>><<SlaveInteractFertility>><</link>> + <</if>> + <<if $activeSlave.bellyPreg >= 300000 && $pregInventions >= 1>> + | <<link "Fuck her with the help of her assistants">><<replace "#miniscene">><<include "FAssistedSex">><br> <</replace>><<SlaveInteractFertility>><</link>> + <</if>> + <<if $activeSlave.bellyPreg >= 300000 && $pregInventions >= 1>> + | <<link "Fuck her in your goo pool">><<replace "#miniscene">><<include "FPoolSex">><br> <</replace>><<SlaveInteractFertility>><</link>> + <</if>> <<else>> //Remove her chastity belt if you wish to fuck her// <</if>> <</if>> + <<if $activeSlave.bellyPreg >= 300000>> + <<if canDoVaginal($activeSlave) || canDoAnal($activeSlave)>> + | <<link "Fuck $him on $his belly">><<replace "#miniscene">><<include "FBellyFuck">><br> <</replace>><</link>> + <<if $pregInventions >= 1>> + | <<link "Fuck $him in $his maternity swing">><<replace "#miniscene">><<include "FMaternitySwing">><br> <</replace>><</link>> + | <<link "Fuck $him with the help of $his assistants">><<replace "#miniscene">><<include "FAssistedSex">><br> <</replace>><</link>> + | <<link "Fuck $him in your goo pool">><<replace "#miniscene">><<include "FPoolSex">><br> <</replace>><</link>> + <</if>> + <</if>> + <</if>> <</replace>> <</widget>> /% diff --git a/src/utility/slaveCreationWidgets.tw b/src/utility/slaveCreationWidgets.tw index b7a95914ff1a9e082c0417df074fe307b0fc24da..2efb15c8c95055745af4794d79f7105cad626f79 100644 --- a/src/utility/slaveCreationWidgets.tw +++ b/src/utility/slaveCreationWidgets.tw @@ -6,7 +6,7 @@ Called from Gen XX, Gen XY, CheatMode DB, InitNationalities. %/ <<widget "BaseSlave">> - <<set $activeSlave = {slaveName: "blank", slaveSurname: 0, birthName: "blank", birthSurname: 0, genes: "XX", pronoun: "she", possessive: "her", possessivePronoun: "hers", objectReflexive: "herself", object: "her", noun: "girl", weekAcquired: 0, origin: 0, career: 0, ID: 0, prestige: 0, pornFeed: 0, pornFame: 0, pornFameSpending: 0, pornPrestige: 0, pornPrestigeDesc: 0, pornFameType: "none", pornFocus: "none", pornTypeGeneral: 0, pornTypeFuckdoll: 0, pornTypeRape: 0, pornTypePreggo: 0, pornTypeBBW: 0, pornTypeGainer: 0, pornTypeStud: 0, pornTypeLoli: 0, pornTypeDeepThroat: 0, pornTypeStruggleFuck: 0, pornTypePainal: 0, pornTypeTease: 0, pornTypeRomantic: 0, pornTypePervert: 0, pornTypeCaring: 0, pornTypeUnflinching: 0, pornTypeSizeQueen: 0, pornTypeNeglectful: 0, pornTypeCumAddict: 0, pornTypeAnalAddict: 0, pornTypeAttentionWhore: 0, pornTypeBreastGrowth: 0, pornTypeAbusive: 0, pornTypeMalicious: 0, pornTypeSelfHating: 0, pornTypeBreeder: 0, pornTypeSub: 0, pornTypeCumSlut: 0, pornTypeAnal: 0, pornTypeHumiliation: 0, pornTypeBoobs: 0, pornTypeDom: 0, pornTypeSadist: 0, pornTypeMasochist: 0, pornTypePregnancy: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, father: 0, mother: 0, daughters: 0, sisters: 0, canRecruit: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), actualAge: 18, visualAge: 18, physicalAge: 18, ovaryAge: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", origRace: "white", markings: "none", eyes: 1, eyeColor: "brown", origEye: "brown", pupil: "circular", sclerae: "white", eyewear: "none", hears: 0, earwear: "none", earImplant: 0, origHColor: "brown", hColor: "brown", pubicHColor: "brown", underArmHColor: "brown", eyebrowHColor: "brown", origSkin: "light", skin: "light", hLength: 60, eyebrowFullness: "natural", hStyle: "short", pubicHStyle: "neat", underArmHStyle: "neat", eyebrowHStyle: "natural", waist: 0, corsetPiercing: 0, PLimb: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute", nipplesPiercing: 0, nipplesAccessory: 0, areolae: 0, areolaePiercing: 0, areolaeShape: "circle", boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, pregAdaptation: 50, superfetation: 0, ovaImplant: 0, broodmother: 0, broodmotherFetuses: 0, broodmotherOnHold: 0, broodmotherCountDown: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, prostate: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules: "restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", legAccessory: "none", buttplug: "none", buttplugAttachment: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, need: 0, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, publicCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customTitle: "", customTitleLisp: "", rudeTitle: 0, customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, pregKnown: 0, pregWeek: 0, belly: 0, bellyPreg: 0, bellyFluid: 0, bellyImplant: -1, bellySag: 0, bellySagPreg: 0, bellyPain: 0, cervixImplant: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, scars: 0, breedingMark: 0, bodySwap: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0, reservedChildrenNursery: 0, choosesOwnChastity: 0, pregControl: "none", readyLimbs: [], ageAdjust: 0, bald: 0, origBodyOwner: "", origBodyOwnerID: 0, death: "", hormoneBalance: 0, onDiet: 0, breastMesh: 0, slavesFathered: 0, PCChildrenFathered: 0, slavesKnockedUp: 0, PCKnockedUp: 0, prematureBirth: 0, premature: 0, origSkin: "white", vasectomy: 0, haircuts: 0, newGamePlus: 0, skillHG: 0, skillRC: 0, skillBG: 0, skillMD: 0, skillDJ: 0, skillNU: 0, skillTE: 0, skillAT: 0, skillMT: 0, skillST: 0, skillMM: 0, skillWA: 0, skillS: 0, skillE: 0, skillW: 0, tankBaby: 0, inducedNCS: 0, NCSyouthening: 0, override_Race: 0, override_Skin: 0, override_Eye_Color: 0, override_H_Color: 0, override_Pubic_H_Color: 0, override_Arm_H_Color: 0, override_Brow_H_Color: 0, missingEyes: 0, missingArms: 0, missingLegs: 0}>> + <<run BaseSlave()>> <</widget>> /%