diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt index 0419f88831351a94c63eb393160c6a7de81fcffb..9cb63cb21f47ec2632fc26cc8b292951f4aa19cb 100644 --- a/devNotes/twine JS.txt +++ b/devNotes/twine JS.txt @@ -271,14 +271,6 @@ window.canImpreg = function(slave1, slave2) { return null; } else if (slave2.dick < 1) { return false; - } else if (slave2.ID === -1) { - if (slave1.eggType != "human") { - return false; - } else if (!canGetPregnant(slave1)) { /* includes chastity checks */ - return false; - } else { - return true; - } } else if (slave2.balls < 1) { return false; } else if (slave2.dickAccessory == "chastity") { @@ -289,14 +281,6 @@ window.canImpreg = function(slave1, slave2) { return false; } else if (slave2.vasectomy == 1) { return false; - } else if (slave1.ID === -1) { - if (slave2.ballType != "human") { - return false; - } else if (!isPlayerFertile(slave1)) { - return false; - } else { - return true; - } } else if (!canBreed(slave1, slave2)) { return false; /* pregmod end */ } else if (!canGetPregnant(slave1)) { /* includes chastity checks */ @@ -324,7 +308,7 @@ window.isFertile = function(slave) { return false; } else if (slave.ovaryAge >= 47) { return false; - } else if (slave.inflation > 2) { + } else if (slave.inflation != 0) { return false; } else if (slave.bellyImplant != -1) { return false; @@ -747,6 +731,7 @@ window.expandFacilityAssignments = function(facilityAssignments) { "serve in the master suite": "be your Concubine", "learn in the schoolroom": "be the Schoolteacher", "be confined in the cellblock": "be the Wardeness", + "be a nanny": "be the Matron", }; if (!facilityAssignments || !facilityAssignments.length) @@ -2256,15 +2241,6 @@ window.getSlaveCost = function(s) { // TODO: Include them here anyway? } else { cost += foodCost * s.pregType * (s.pregControl === 'speed up' ? 3 : 1); - if (s.pregType >= 100) { - cost += foodCost * 5 * s.pregType * (s.pregControl === 'speed up' ? 3 : 1); - } else if (s.pregType >= 50) { - cost += foodCost * 3 * s.pregType * (s.pregControl === 'speed up' ? 3 : 1); - } else if (s.pregType >= 30) { - cost += foodCost * 2 * s.pregType * (s.pregControl === 'speed up' ? 3 : 1); - } else if (s.pregType >= 10) { - cost += foodCost * s.pregType * (s.pregControl === 'speed up' ? 3 : 1); - } } } if(s.diet === 'XX' || s.diet === 'XY' || s.diet === 'fertility') { @@ -2661,7 +2637,6 @@ window.emptyDefaultRule = function emptyDefaultRule() { }, set: { releaseRules: "no default setting", - toyHole: "no default setting", clitSetting: "no default setting", clitSettingXY: "no default setting", clitSettingXX: "no default setting", @@ -2724,7 +2699,6 @@ window.emptyDefaultRule = function emptyDefaultRule() { diet: "no default setting", dietCum: "no default setting", dietMilk: "no default setting", - onDiet: "no default setting", muscles: "no default setting", XY: "no default setting", XX: "no default setting", @@ -2775,7 +2749,6 @@ window.emptyDefaultRule = function emptyDefaultRule() { label: "no default setting", removeLabel: "no default setting", skinColor: "no default setting", - inflationType: "no default setting", } }; return rule; @@ -3696,167 +3669,6 @@ window.ValidateFacilityDecoration = function ValidateFacilityDecoration(decorati } }; -window.FSChange = function FSChange(FS, magnitude, bonus_multiplier) { - "use strict"; - const V = State.variables; - let errorMessage = ""; - - switch (FS) { - case "Supremacist": - if (Number.isFinite(V.arcologies[0].FSSupremacist)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSupremacist / V.FSLockinLevel); - V.arcologies[0].FSSupremacist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "Subjugationist": - if (Number.isFinite(V.arcologies[0].FSSubjugationist)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSubjugationist / V.FSLockinLevel); - V.arcologies[0].FSSubjugationist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "GenderRadicalist": - if (Number.isFinite(V.arcologies[0].FSGenderRadicalist)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSGenderRadicalist / V.FSLockinLevel); - V.arcologies[0].FSGenderRadicalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "GenderFundamentalist": - if (Number.isFinite(V.arcologies[0].FSGenderFundamentalist)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSGenderFundamentalist / V.FSLockinLevel); - V.arcologies[0].FSGenderFundamentalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "Paternalist": - if (Number.isFinite(V.arcologies[0].FSPaternalist)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPaternalist / V.FSLockinLevel); - V.arcologies[0].FSPaternalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "Degradationist": - if (Number.isFinite(V.arcologies[0].FSDegradationist)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSDegradationist / V.FSLockinLevel); - V.arcologies[0].FSDegradationist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "AssetExpansionist": - if (Number.isFinite(V.arcologies[0].FSAssetExpansionist)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSAssetExpansionist / V.FSLockinLevel); - V.arcologies[0].FSAssetExpansionist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "SlimnessEnthusiast": - if (Number.isFinite(V.arcologies[0].FSSlimnessEnthusiast)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSlimnessEnthusiast / V.FSLockinLevel); - V.arcologies[0].FSSlimnessEnthusiast += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "TransformationFetishist": - if (Number.isFinite(V.arcologies[0].FSTransformationFetishist)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSTransformationFetishist / V.FSLockinLevel); - V.arcologies[0].FSTransformationFetishist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "BodyPurist": - if (Number.isFinite(V.arcologies[0].FSBodyPurist)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSBodyPurist / V.FSLockinLevel); - V.arcologies[0].FSBodyPurist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "MaturityPreferentialist": - if (Number.isFinite(V.arcologies[0].FSMaturityPreferentialist)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSMaturityPreferentialist / V.FSLockinLevel); - V.arcologies[0].FSMaturityPreferentialist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "YouthPreferentialist": - if (Number.isFinite(V.arcologies[0].FSYouthPreferentialist)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSYouthPreferentialist / V.FSLockinLevel); - V.arcologies[0].FSYouthPreferentialist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "Pastoralist": - if (Number.isFinite(V.arcologies[0].FSPastoralist)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPastoralist / V.FSLockinLevel); - V.arcologies[0].FSPastoralist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "PhysicalIdealist": - if (Number.isFinite(V.arcologies[0].FSPhysicalIdealist)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPhysicalIdealist / V.FSLockinLevel); - V.arcologies[0].FSPhysicalIdealist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "ChattelReligionist": - if (Number.isFinite(V.arcologies[0].FSChattelReligionist)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSChattelReligionist / V.FSLockinLevel); - V.arcologies[0].FSChattelReligionist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "RomanRevivalist": - if (Number.isFinite(V.arcologies[0].FSRomanRevivalist)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRomanRevivalist / V.FSLockinLevel); - V.arcologies[0].FSRomanRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "AztecRevivalist": - if (Number.isFinite(V.activeArcology.FSAztecRevivalist)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSAztecRevivalist / V.FSLockinLevel); - V.arcologies[0].FSAztecRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "EgyptianRevivalist": - if (Number.isFinite(V.arcologies[0].FSEgyptianRevivalist)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSEgyptianRevivalist / V.FSLockinLevel); - V.arcologies[0].FSEgyptianRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "EdoRevivalist": - if (Number.isFinite(V.arcologies[0].FSEdoRevivalist)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSEdoRevivalist / V.FSLockinLevel); - V.arcologies[0].FSEdoRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "ArabianRevivalist": - if (Number.isFinite(V.arcologies[0].FSArabianRevivalist)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSArabianRevivalist / V.FSLockinLevel); - V.arcologies[0].FSArabianRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "ChineseRevivalist": - if (Number.isFinite(V.arcologies[0].FSChineseRevivalist)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSChineseRevivalist / V.FSLockinLevel); - V.arcologies[0].FSChineseRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "Repopulationist": - if (Number.isFinite(V.arcologies[0].FSRepopulationFocus)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRepopulationFocus / V.FSLockinLevel); - V.arcologies[0].FSRepopulationFocus += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "Eugenics": - if (Number.isFinite(V.arcologies[0].FSRestart)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRestart / V.FSLockinLevel); - V.arcologies[0].FSRestart += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - case "Hedonism": - if (Number.isFinite(V.arcologies[0].FSHedonisticDecadence)) { - V.rep += magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSHedonisticDecadence / V.FSLockinLevel); - V.arcologies[0].FSHedonisticDecadence += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1); - } - break; - default: - errorMessage += "<span class='red'>ERROR: bad FS reference</span>"; - } - return errorMessage; -}; - -/* Currently unused, widget version routes directly through FSChange() */ -window.FSChangePorn = function FSChangePorn(FS, magnitude) { - return FSChange(FS, magnitude, State.variables.pornFameBonus); -}; - window.ordinalSuffix = function ordinalSuffix(i) { var j = i % 10, k = i % 100; @@ -8808,10 +8620,6 @@ window.SlaveSort = function SlaveSort(slaves, main=false) { } }; -window.slaveSortMinor = function slaveSortMinor(slaves) { - slaves = slaves.sort((a, b) => a.slaveName < b.slaveName ? -1 : 1); -} - window.MenialPopCap = function MenialPopCap () { const V = State.variables; let popCap = 500; @@ -12092,16 +11900,6 @@ window.HSM = function() { return .75; } - window.TierTwoUnlockCalc = function() { - const V = State.variables; - if (V.securityForceInfantryPower > 5) V.securityForceInfantryPower = 5; - if (V.securityForceArcologyUpgrades > 5) V.securityForceArcologyUpgrades = 5; - if (V.securityForceVehiclePower > 5) V.securityForceVehiclePower = 5; - if (V.securityForceDronePower > 5) V.securityForceDronePower = 5; - if (V.securityForceStimulantPower > 5) V.securityForceStimulantPower = 5; - if (V.securityForceAircraftPower > 5) V.securityForceAircraftPower = 5; - } - /*:: colorModeJS [script]*/ window.flipColors = function (lightColorMap){ @@ -12322,7 +12120,6 @@ window.DefaultRules = (function() { ProcessContraceptives(slave, rule); ProcessOtherDrugs(slave, rule); ProcessAssetGrowthDrugs(slave, rule); - ProcessEnema(slave, rule); ProcessDiet(slave, rule); ProcessCuratives(slave, rule); ProcessAphrodisiacs(slave, rule); @@ -12337,11 +12134,8 @@ window.DefaultRules = (function() { ProcessPunishment(slave, rule); ProcessReward(slave, rule); } - ProcessToyHole(slave, rule); ProcessDietCum(slave, rule); ProcessDietMilk(slave, rule); - if (V.arcologies[0].FSHedonisticDecadenceResearch === 1) - ProcessSolidFood(slave, rule); ProcessTeeth(slave, rule); ProcessStyle(slave, rule); ProcessPiercings(slave, rule); @@ -13583,7 +13377,7 @@ window.DefaultRules = (function() { break; case "appetite suppressors": - if (!(slave.weight <= -95)) + if (!(slave.weight > -95)) flag = false; break; @@ -13610,46 +13404,6 @@ window.DefaultRules = (function() { } } - function ProcessEnema(slave, rule) { - if ((rule.inflationType !== undefined) && (rule.inflationType !== "no default setting")) { - if (slave.inflationType !== rule.inflationType) { - if ((slave.inflationType === "curative" && slave.health > 90) || (slave.inflationType === "tightener" && slave.anus <= 1 && slave.vagina <= 1)) { - r += `<br>${slave.slaveName} cannot benefit from her assigned enema and has been defaulted to none.`; - slave.inflation = 0; - slave.inflationType = "none"; - slave.inflationMethod = 0; - slave.milkSource = 0; - slave.cumSource = 0; - SetBellySize(slave); - } else if ((rule.inflationType === "curative" && slave.health > 90) || (rule.inflationType === "tightener" && slave.anus <= 1 && slave.vagina <= 1)) { - } else { - r += `<br>${slave.slaveName}'s current enema regimen has been set to ${rule.inflationType}.`; - slave.inflation = 1; - slave.inflationType = rule.inflationType; - slave.inflationMethod = 2; - slave.milkSource = 0; - slave.cumSource = 0; - SetBellySize(slave); - } - } - if (slave.inflationType !== "none" && slave.inflation > 1 && slave.health < -50) { - r += `<br>${slave.slaveName}'s current enema regimen risks death, so it has been reduced to a less threatening level.`; - slave.inflation = 1; - SetBellySize(slave); - } else if (slave.inflation > 1 && (slave.bellyPreg >= 1500 || slave.bellyImplant >= 1500)) { - r += `<br>${slave.slaveName}'s current enema is too much for her body, so it has been reduced.`; - slave.inflation = 1; - SetBellySize(slave); - } else if (slave.inflationType === "none") { - slave.inflation = 0; - slave.inflationMethod = 0; - slave.milkSource = 0; - slave.cumSource = 0; - SetBellySize(slave); - } - } - } - function ProcessDiet(slave, rule) { // Diet Setting if (rule.diet !== undefined && rule.diet !== "no default setting") { @@ -14033,39 +13787,6 @@ window.DefaultRules = (function() { } } - function ProcessToyHole(slave, rule) { - if ((rule.toyHole !== undefined) && (rule.toyHole !== "no default setting")) { - if (rule.toyHole === "pussy") { - if (slave.vagina > 0 && canDoVaginal(slave)) { - slave.toyHole = rule.toyHole ; - r += `<br>${slave.slaveName} has been instructed to use her ${rule.toyHole} to please you.`; - } else if (slave.toyHole !== "all her holes") { - slave.toyHole = "all her holes" ; - r += `<br>${slave.slaveName}'s hole preference has defaulted to all her holes.`; - } - } else if (rule.toyHole === "ass") { - if (slave.anus > 0 && canDoAnal(slave)) { - slave.toyHole = rule.toyHole ; - r += `<br>${slave.slaveName} has been instructed to use her ${rule.toyHole} to please you.`; - } else if (slave.toyHole !== "all her holes") { - slave.toyHole = "all her holes" ; - r += `<br>${slave.slaveName}'s hole preference has defaulted to all her holes.`; - } - } else if (rule.toyHole === "dick") { - if (slave.dick > 0 && canPenetrate(slave)) { - slave.toyHole = rule.toyHole ; - r += `<br>${slave.slaveName} has been instructed to use her ${rule.toyHole} to please you.`; - } else if (slave.toyHole !== "all her holes") { - slave.toyHole = "all her holes" ; - r += `<br>${slave.slaveName}'s hole preference has defaulted to all her holes.`; - } - } else if ((slave.toyHole !== rule.toyHole)) { - slave.toyHole = rule.toyHole ; - r += `<br>${slave.slaveName} has been instructed to use her ${rule.toyHole} to please you.`; - } - } - } - function ProcessDietCum(slave, rule) { if ((rule.dietCum !== undefined) && (rule.dietCum !== "no default setting")) { if (slave.dietCum != rule.dietCum) { @@ -14098,18 +13819,6 @@ window.DefaultRules = (function() { } } - function ProcessSolidFood(slave, rule) { - if ((rule.onDiet !== undefined) && (rule.onDiet !== "no default setting")) { - if ((slave.onDiet !== rule.onDiet)) { - slave.onDiet = rule.onDiet ; - if (slave.onDiet == 1) - r += `<br>${slave.slaveName} is permitted to eat the solid slave food.`; - else - r += `<br>${slave.slaveName} is not permitted to eat the solid slave food.`; - } - } - } - function ProcessTeeth(slave, rule) { if ((rule.teeth !== undefined) && (rule.teeth !== "no default setting")) { if ((rule.teeth == "universal")) { @@ -14688,7 +14397,6 @@ window.DefaultRules = (function() { } slave.pornFeed = rule.pornFeed; let yesno = slave.pornFeed ? "are now" : "are no longer"; - if (slave.pornFeed === 0) {slave.pornFameSpending = 0}; r += `<br>Highlights of ${slave.slaveName}'s sex life ${yesno} being released.`; } @@ -15656,15 +15364,9 @@ window.rulesAssistantOptions = (function() { this.appendChild(new ShemaleHormonesList()); this.appendChild(new GeldingHormonesList()); this.appendChild(new OtherDrugsList()); - if (V.enema === 1) { - this.appendChild(new EnemaList()); - } this.appendChild(new DietList()); this.appendChild(new DietGrowthList()); this.appendChild(new DietBaseList()); - if (V.arcologies[0].FSHedonisticDecadenceResearch === 1) { - this.appendChild(new DietSolidFoodList()); - } this.appendChild(new MuscleList()); this.appendChild(new BraceList()); } @@ -15678,7 +15380,6 @@ window.rulesAssistantOptions = (function() { this.appendChild(new PunishmentList()); this.appendChild(new RewardList()); this.appendChild(new ReleaseList()); - this.appendChild(new ToyHoleList()); this.appendChild(new SmartFetishList()); this.appendChild(new SmartXYAttractionList()); this.appendChild(new SmartXXAttractionList()); @@ -16386,12 +16087,9 @@ window.rulesAssistantOptions = (function() { drugs.push(["Weight loss pills (FS)", "appetite suppressors"]); drugs.push(["breast redistributors"]); drugs.push(["butt redistributors"]); - drugs.push(["nipple atrophiers"]); drugs.push(["lip atrophiers"]); drugs.push(["penis atrophiers"]); drugs.push(["testicle atrophiers"]); - drugs.push(["clitoris atrophiers"]); - drugs.push(["labia atrophiers"]); } if (V.arcologies[0].FSAssetExpansionistResearch === 1) { drugs.push(["hyper breast injections"]); @@ -16409,26 +16107,6 @@ window.rulesAssistantOptions = (function() { } } - class EnemaList extends List { - constructor() { - const enemas = [ - ["No default setting", "no default setting"], - ["None", "none"], - ["Water", "water"] - ]; - if (V.medicalEnema === 1) { - enemas.push( - ["Aphrodisiac", "aphrodisiac"], - ["Curative", "curative"], - ["Tightener", "tightener"] - ); - } - super("Enemas", enemas); - this.setValue(current_rule.set.inflationType); - this.onchange = (value) => current_rule.set.inflationType = value; - } - } - class DietList extends List { constructor() { const diets = [ @@ -16498,19 +16176,6 @@ window.rulesAssistantOptions = (function() { } } - class DietSolidFoodList extends List { - constructor() { - const pairs = [ - ["No default setting", "no default setting"], - ["Permitted", 1], - ["Forbidden", 0], - ]; - super("Solid food access", pairs); - this.setValue(current_rule.set.onDiet); - this.onchange = (value) => current_rule.set.onDiet = value; - } - } - class MuscleList extends List { constructor() { const pairs = [ @@ -16600,23 +16265,6 @@ window.rulesAssistantOptions = (function() { } } - class ToyHoleList extends List { - constructor() { - const pairs = [ - ["No default setting", "no default setting"], - ["All her holes", "all her holes"], - ["Mouth", "mouth"], - ["Boobs", "boobs"], - ["Pussy", "pussy"], - ["Ass", "ass"], - ["Dick", "dick"] - ]; - super("Fucktoy use preference", pairs); - this.setValue(current_rule.set.toyHole); - this.onchange = (value) => current_rule.set.toyHole = value; - } - } - class SmartFetishList extends List { constructor() { const pairs = [ @@ -16852,7 +16500,6 @@ window.rulesAssistantOptions = (function() { class EarwearList extends List { constructor() { const pairs = [ - ["no default setting"], ["correct with hearing aids"], ["muffle with ear plugs"], ["deafen with ear plugs"] @@ -17925,7 +17572,6 @@ window.rulesAssistantOptions = (function() { class CosmeticSurgeryList extends List { constructor() { const items = [ - ["no default setting"], ["none", 0], ["subtle", 1], ["invasive", 2], @@ -18722,7 +18368,7 @@ window.AnalVCheck = function AnalVCheck(times) { slave.anus = 1; } if (canDoAnal(slave)) { - if (canImpreg(slave, V.PC)) { + if (V.PC.dick === 1 && canGetPregnant(slave) && slave.eggType == "human") { r += knockMeUp(slave, 10, 1, -1, 1); } if (!times) { @@ -18778,7 +18424,7 @@ window.VaginalVCheck = function VaginalVCheck(times) { } slave.vagina = 1; - if (canImpreg(slave, V.PC)) { + if (V.PC.dick === 1 && canGetPregnant(slave) && slave.eggType == "human") { r += knockMeUp(slave, 10, 0, -1, 1); } if (!times) { @@ -18888,7 +18534,7 @@ window.BothVCheck = function BothVCheck(analTimes, bothTimes) { slave.vaginalCount += bothTimes; slave.analCount += bothTimes; } - if (canImpreg(slave, V.PC)) { + if (V.PC.dick === 1 && canGetPregnant(slave) && slave.eggType == "human") { r += knockMeUp(slave, 10, 2, -1, 1); } } @@ -18901,7 +18547,7 @@ window.BothVCheck = function BothVCheck(analTimes, bothTimes) { V.vaginalTotal += bothTimes; slave.vaginalCount += bothTimes; } - if (canImpreg(slave, V.PC)) { + if (V.PC.dick == 1 && canGetPregnant(slave) && slave.eggType == "human") { r += knockMeUp(slave, 10, 0, -1, 1); } } @@ -18941,7 +18587,7 @@ window.BothVCheck = function BothVCheck(analTimes, bothTimes) { V.analTotal += analTimes; slave.analCount += analTimes; } - if (canImpreg(slave, V.PC)) { + if (V.PC.dick === 1 && canGetPregnant(slave) && slave.eggType == "human") { r += knockMeUp(slave, 10, 1, -1, 1); } } @@ -19009,7 +18655,7 @@ window.PartnerVCheck = function PartnerVCheck(analTimes, bothTimes) { partner.vaginalCount += bothTimes; partner.analCount += bothTimes; } - if (canImpreg(partner, V.PC)) { + if (V.PC.dick === 1 && canGetPregnant(partner) && partner.eggType == "human") { r += knockMeUp(partner, 10, 2, -1); } } @@ -19022,7 +18668,7 @@ window.PartnerVCheck = function PartnerVCheck(analTimes, bothTimes) { V.vaginalTotal += bothTimes; partner.vaginalCount += bothTimes; } - if (canImpreg(partner, V.PC)) { + if (V.PC.dick === 1 && canGetPregnant(partner) && partner.eggType == "human") { r += knockMeUp(partner, 10, 0, -1); } } @@ -19033,14 +18679,14 @@ window.PartnerVCheck = function PartnerVCheck(analTimes, bothTimes) { partner.anus = 1; } if (!analTimes) { - V.analTotal += 1; - partner.analCount += 1; - } - else { V.analTotal += analTimes; partner.analCount += analTimes; } - if (canImpreg(partner, V.PC)) { + else { + V.analTotal += 1; + partner.analCount += 1; + } + if (V.PC.dick === 1 && canGetPregnant(partner) && partner.eggType == "human") { r += knockMeUp(partner, 10, 1, -1); } } @@ -19069,14 +18715,14 @@ window.SimpleSexAct = function SimpleSexAct(slave, count) { else if (canDoVaginal(slave) && slave.vagina > 0 && fuckTarget > 33) { V.vaginalTotal += 1; slave.vaginalCount += 1; - if (canImpreg(slave, V.PC)) { + if (V.PC.dick === 1 && canGetPregnant(slave) && slave.eggType == "human") { r += knockMeUp(slave, 10, 0, -1, 1); } } else if (canDoAnal(slave) && slave.anus > 0 && fuckTarget > 10) { V.analTotal += 1; slave.analCount += 1; - if (canImpreg(slave, V.PC)) { + if (V.PC.dick == 1 && canGetPregnant(slave) && slave.eggType == "human") { r += knockMeUp(slave, 10, 1, -1, 1); } } @@ -21235,10 +20881,10 @@ window.SlaveSummaryUncached = (function(){ r += slave.actualAge; } if (slave.actualAge !== slave.physicalAge) { - r += ` w${slave.physicalAge}y-bdy`; + r += `${slave.physicalAge}y-bdy`; } if (slave.visualAge !== slave.physicalAge) { - r += ` Lks${slave.visualAge}`; + r += `Lks${slave.visualAge}`; } r += " "; } @@ -21308,10 +20954,6 @@ window.SlaveSummaryUncached = (function(){ r += `Rem Teeth`; } else if (slave.teeth === "pointy") { r += `Fangs`; - } else if (slave.teeth === "baby") { - r += `Baby`; - } else if (slave.teeth === "mixed") { - r += `Mixed`; } r += " "; } @@ -21626,10 +21268,6 @@ window.SlaveSummaryUncached = (function(){ r += `Removable teeth.`; } else if (slave.teeth === "pointy") { r += `Sharp fangs.`; - } else if (slave.teeth === "baby") { - r += `Baby teeth.`; - } else if (slave.teeth === "mixed") { - r += `Mixed teeth.`; } r += " "; } @@ -23016,7 +22654,6 @@ window.SlaveSummaryUncached = (function(){ r += ` & lover`; handled = 1; } - r += " "; } if (slave.daughters === 1) { let _ssj = V.slaves.findIndex(function(s) { @@ -24245,13 +23882,13 @@ sizePlacement: Image size/center. */ window.assistantArt = function assistantArt(sizePlacement) { const V = State.variables; - let fileName = ""; + let fileName = "'"; if (V.imageChoice === 0 || V.imageChoice === 1) { if (V.imageChoice === 1) { - fileName += "'resources/vector/avatar/"; + fileName += "resources/vector/avatar/"; } else /* V.imageChoice === 0*/ { - fileName += "'resources/renders/assistant "; + fileName += "resources/renders/assistant "; } switch (V.assistantAppearance) { case "monstergirl": @@ -24319,9 +23956,6 @@ window.ArtControlRendered = function ArtControlRendered(slave, sizePlacement) { let fileName = "'resources/renders/"; let r = ""; - if (slave.belly > 1500) { - fileName += "preg "; - } if (slave.vagina > -1) { if (slave.dick > 0) { if (slave.balls > 0) { @@ -24339,6 +23973,9 @@ window.ArtControlRendered = function ArtControlRendered(slave, sizePlacement) { fileName += "gelding"; } } + if (slave.belly > 1500) { + fileName = `preg ${fileName}`; + } if (slave.boobs < 400) { fileName = `${fileName} small`; } else if (slave.boobs < 800) { @@ -25858,7 +25495,7 @@ window.GetVignette = function GetVignette(slave) { const He = capFirstChar(he); const His = capFirstChar(his); - if (slave.assignment === "whore" || slave.assignment === window.Job.BROTHEL || slave.assignment === window.Job.MADAM) { + if (slave.assignment === "whore" || slave.assignment === "work in the brothel") { let seed = jsRandom(1, 10); switch (seed) { case 1: @@ -27434,7 +27071,7 @@ window.GetVignette = function GetVignette(slave) { type: "trust", effect: -1, }); - } else if (slave.assignment === "serve the public" || slave.assignment === window.Job.CLUB || slave.assignment === window.Job.DJ) { + } else if (slave.assignment === "serve the public" || slave.assignment === "serve in the club") { let seed = jsRandom(1, 10); switch (seed) { case 1: diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt index 7c9e69179545c69ee5cc5e370beef1915395585b..cf3861e5dc806bd918a83b1b9903aea82c70b039 100644 --- a/slave variables documentation - Pregmod.txt +++ b/slave variables documentation - Pregmod.txt @@ -1,4 +1,4 @@ - + **anything labeled accepts string will return any string entered into it** slaveName: @@ -626,6 +626,7 @@ slave's assignment Assigned to facility: "rest in the spa" + "work as a nanny" "work as a servant" (Servants' Quarters ) "work in the dairy" "serve in the club" @@ -639,6 +640,7 @@ slave's assignment Leadership positions: "be the Attendant" + "be the Matron" "be the Stewardess" "be the Milkmaid" "be the DJ" @@ -1632,8 +1634,6 @@ accepts string "cosmetic braces" "removable" "pointy" -"baby" -"mixed" tonguePiercing: @@ -3172,6 +3172,12 @@ Her skill as an attendant accepts int default cap is 200 +skillMT: + +Her skill as a matron +accepts int +default cap is 200 + skillST: Her skill as a stewardess @@ -3242,7 +3248,7 @@ How to set up your own hero slave. -The default slave template used: -<<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, 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, 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, origSkin: "white", vasectomy: 0, haircuts: 0, newGamePlus: 0, skillHG: 0, skillRC: 0, skillBG: 0, skillMD: 0, skillDJ: 0, skillNU: 0, skillTE: 0, skillAT: 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}>> +<<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", markings: "none", eyes: 1, eyeColor: "brown", origEye: "brown", eyewear: "none", hears: 0, earwear: "none", earImplant: 0, origHColor: "brown", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 60, hStyle: "short", pubicHStyle: "neat", 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, 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, underArmHStyle: "waxed", bodySwap: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 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, origSkin: "white", vasectomy: 0, haircuts: 0, newGamePlus: 0, skillHG: 0, skillRC: 0, skillBG: 0, skillMD: 0, skillDJ: 0, skillNU: 0, skillTE: 0, skillAT: 0, skillST: 0, skillMM: 0, skillWA: 0, skillS: 0, skillE: 0, skillW: 0, tankBaby: 0, inducedNCS: 0, NCSyouthening: 0}>> Making your slave; add their name to the following, then go down the documentation adding in your changes. -each variable must be separated from the last by a comma followed by a space diff --git a/src/init/dummy.tw b/src/init/dummy.tw index 0eeaf95a49e777a6a8a445e72db1f175e29a7c88..91814d6e28b681873ea331cffc03536afe767ef1 100644 --- a/src/init/dummy.tw +++ b/src/init/dummy.tw @@ -5,7 +5,7 @@ Do not uncomment anything! $showBestiality $ageMode -$youngCareers, $educatedCareers, $uneducatedCareers, $gratefulCareers, $menialCareers, $entertainmentCareers, $whoreCareers, $HGCareers, $madamCareers, $DJCareers, $bodyguardCareers, $wardenessCareers, $nurseCareers, $attendantCareers, $milkmaidCareers, $stewardessCareers, $schoolteacherCareers +$youngCareers, $educatedCareers, $uneducatedCareers, $gratefulCareers, $menialCareers, $entertainmentCareers, $whoreCareers, $HGCareers, $madamCareers, $DJCareers, $bodyguardCareers, $wardenessCareers, $nurseCareers, $attendantCareers, $matronCareers, $milkmaidCareers, $stewardessCareers, $schoolteacherCareers $whiteAmericanSlaveNames, $africanAmericanSlaveNames, $asianAmericanSlaveNames, $latinaSlaveNames, $russianSlaveNames, $egyptianSlaveNames, $brazilianSlaveNames, $chineseSlaveNames, $koreanSlaveNames, $indianSlaveNames, $indonesianSlaveNames, $bangladeshiSlaveNames, $japaneseSlaveNames, $nigerianSlaveNames, $pakistaniSlaveNames, $mexicanSlaveNames, $filipinaSlaveNames, $ethiopianSlaveNames, $germanSlaveNames, $saudiSlaveNames, $turkishSlaveNames, $colombianSlaveNames, $argentinianSlaveNames, $vietnameseSlaveNames, $iranianSlaveNames, $congoleseSlaveNames, $frenchSlaveNames, $thaiSlaveNames, $britishSlaveNames, $italianSlaveNames, $spanishSlaveNames, $kenyanSlaveNames, $ukrainianSlaveNames, $canadianSlaveNames, $peruvianSlaveNames, $venezuelanSlaveNames, $irishSlaveNames, $icelandicSlaveNames, $finnishSlaveNames, $newZealanderSlaveNames, $polishSlaveNames, $greekSlaveNames, $israeliSlaveNames, $armenianSlaveNames, $moroccanSlaveNames, $romanianSlaveNames, $swedishSlaveNames, $lithuanianSlaveNames, $bolivianSlaveNames, $haitianSlaveNames, $cubanSlaveNames, $whiteSouthAfricanSlaveNames, $blackSouthAfricanSlaveNames, $chileanSlaveNames, $belgianSlaveNames, $danishSlaveNames, $norwegianSlaveNames, $hungarianSlaveNames, $estonianSlaveNames, $slovakSlaveNames, $kazakhSlaveNames, $zimbabweanSlaveNames, $ugandanSlaveNames, $tanzanianSlaveNames, $dutchSlaveNames, $austrianSlaveNames, $swissSlaveNames, $puertoRicanSlaveNames, $czechSlaveNames, $portugueseSlaveNames, $jamaicanSlaveNames, $malaysianSlaveNames, $guatemalanSlaveNames, $ghananSlaveNames, $serbianSlaveNames, $australianSlaveNames, $burmeseSlaveNames, $algerianSlaveNames, $sudaneseSlaveNames, $iraqiSlaveNames, $uzbekSlaveNames, $nepaleseSlaveNames, $afghanSlaveNames, $yemeniSlaveNames, $lebaneseSlaveNames, $tunisianSlaveNames, $emiratiSlaveNames, $libyanSlaveNames, $jordanianSlaveNames, $omaniSlaveNames, $malianSlaveNames, $sammarineseSlaveNames, $marshalleseSlaveNames, $syrianSlaveNames, $bermudianSlaveNames, $uruguayanSlaveNames, $monegasqueSlaveNames, $montenegrinSlaveNames, $cambodianSlaveNames, $cameroonianSlaveNames, $gaboneseSlaveNames, $djiboutianSlaveNames, $greenlandicSlaveNames, $tuvaluanSlaveNames, $zambianSlaveNames, $albanianSlaveNames, $bruneianSlaveNames, $singaporeanSlaveNames $cowSlaveNames, $chattelReligionistSlaveNames, $romanSlaveNames, $aztecSlaveNames, $ancientEgyptianSlaveNames, $edoSlaveNames $ArcologyNamesSupremacistWhite, $ArcologyNamesSupremacistAsian, $ArcologyNamesSupremacistLatina, $ArcologyNamesSupremacistMiddleEastern, $ArcologyNamesSupremacistBlack, $ArcologyNamesSupremacistIndoAryan, $ArcologyNamesSupremacistPacificIslander, $ArcologyNamesSupremacistMalay, $ArcologyNamesSupremacistAmerindian, $ArcologyNamesSupremacistSouthernEuropean, $ArcologyNamesSupremacistSemitic, $ArcologyNamesSupremacistMixedRace diff --git a/src/init/setupVars.tw b/src/init/setupVars.tw index 2d4d45946cdf6e4a08572641fa5990c9c8fd3e10..9e853a64f0b86cf3752be874bc702f94edc9e317 100644 --- a/src/init/setupVars.tw +++ b/src/init/setupVars.tw @@ -306,7 +306,9 @@ <<set setup.nurseCareers = ["a chemist", "a chiropractor", "a coroner", "a dentist", "a doctor", "a hospital volunteer", "a medic", "a medical student", "a midwife", "a mortician", "a nurse", "a paramedic", "a pharmacist", "a physician", "a school nurse's assistant", "a school nurse", "a surgeon"]>> -<<set setup.attendantCareers = ["a babysitter", "a barber", "a cosmetologist", "a counselor", "a dispatch officer", "a fortune teller", "a groomer", "a latchkey kid", "a lifeguard", "a masseuse", "a mediator", "a nanny", "a personal trainer", "a police negotiator", "a psychologist", "a therapist", "a yoga instructor", "an au pair"]>> +<<set setup.attendantCareers = ["a barber", "a cosmetologist", "a counselor", "a dispatch officer", "a fortune teller", "a groomer", "a latchkey kid", "a lifeguard", "a masseuse", "a mediator", "a personal trainer", "a police negotiator", "a psychologist", "a therapist", "a yoga instructor"]>> + +<<set setup.matronCareers = ["a babysitter", "a nanny", "a practitioner", "an au pair"]>> <<set setup.milkmaidCareers = ["a beekeeper", "a bullfighter", "a cowgirl", "a dairy worker", "a farmer's daughter", "a farmer", "a milkmaid", "a rancher", "a rodeo star", "a shepherd", "a veterinarian", "a wet nurse", "a zookeeper"]>> @@ -2023,7 +2025,7 @@ Then pick _namePool.random(), or display those names as possible choices, or do {name: "Long, large plug", value: "long, large plug", rs: "buyBigPlugs"}, {name: "Huge plug", value: "huge plug"}, {name: "Long, huge plug", value: "long, huge plug", rs: "buyBigPlugs"}]>> -<<set setup.facilityCareers = ["be confined in the arcade", "be confined in the cellblock", "be the Attendant", "be the DJ", "be the Madam", "be the Milkmaid", "be the Nurse", "be the Schoolteacher", "be the Stewardess", "be the Wardeness", "be your Concubine", "get treatment in the clinic", "learn in the schoolroom", "live with your Head Girl", "rest in the spa", "serve in the club", "serve in the master suite", "work as a servant", "work in the brothel", "work in the dairy"]>> +<<set setup.facilityCareers = ["be confined in the arcade", "be confined in the cellblock", "be the Attendant", "be the Matron", "be the DJ", "be the Madam", "be the Milkmaid", "be the Nurse", "be the Schoolteacher", "be the Stewardess", "be the Wardeness", "be your Concubine", "get treatment in the clinic", "learn in the schoolroom", "live with your Head Girl", "rest in the spa", "work as a nanny", "serve in the club", "serve in the master suite", "work as a servant", "work in the brothel", "work in the dairy"]>> <<set setup.lightColorMap = { "rgb(0, 0, 0)":"rgb(255, 255, 255)", diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw index 01cbe94b640a3b4e4f08e2365555a17ba15fe577..3c1608e33d545baca7ce91c8a3bf1644ed775fea 100644 --- a/src/init/storyInit.tw +++ b/src/init/storyInit.tw @@ -550,6 +550,14 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $spaFix = 0>> <<set $spaName = "the Spa">> <<set $spaNameCaps = "The Spa">> + +<<set $nursery = 0>> +<<set $nurseryDecoration = "standard">> +<<set $nurserySlaves = 0>> +<<set $nurseryBabies = 0>> +<<set $nurseryName = "the Nursery">> +<<set $nurseryNameCaps = "The Nursery">> + <<set $incubator = 0>> <<set $incubatorSlaves = 0>> <<set $incubatorOrgans = []>> @@ -929,6 +937,7 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $stewardessImpregnates = 0>> <<set $Schoolteacher = 0>> <<set $Attendant = 0>> +<<set $Matron = 0>> <<set $Nurse = 0>> <<set $Wardeness = 0>> <<set $Concubine = 0>> diff --git a/src/js/DefaultRules.tw b/src/js/DefaultRules.tw index 95206588caee960eb3e14e9a05b70c579c392574..e00d00b627483bf55cb44e98e3f1b8e913027794 100644 --- a/src/js/DefaultRules.tw +++ b/src/js/DefaultRules.tw @@ -128,6 +128,15 @@ window.DefaultRules = (function() { } break; + case "work as a nanny": + if ((V.nurserySlaves < V.nursery) && !slave.fuckdoll && (slave.devotion > 20 || slave.trust > 20)) + break; + else { + RAFacilityRemove(slave, rule); // before deleting rule.setAssignment + delete rule.setAssignment; + } + break; + case "work in the brothel": if ((V.brothelSlaves < V.brothel && (slave.devotion > 50 || slave.trust > 50 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20)) && (slave.breedingMark != 1 || V.propOutcome === 0))) break; @@ -281,6 +290,9 @@ window.DefaultRules = (function() { case "rest in the spa": r += `<br>${slave.slaveName} has been automatically assigned to rest in ${V.spaName}.`; break; + case "work as a nanny": + r += `<br>${slave.slaveName} has been automatically assigned to work in ${V.nurseryName}.`; + break; case "work in the brothel": r += `<br>${slave.slaveName} has been automatically assigned to work in ${V.brothelName}.`; break; diff --git a/src/js/PenthouseNaming.tw b/src/js/PenthouseNaming.tw index 38db9ce64f3866b1b4fb15e3675d23f7cee229bf..6efefffd5298dcaf696e04476b5932fccf53f3bf 100644 --- a/src/js/PenthouseNaming.tw +++ b/src/js/PenthouseNaming.tw @@ -32,6 +32,14 @@ window.SpaUIName = function() { else name = V.spaNameCaps; return `<<link "${name}""Spa">><</link>> `} +window.NurseryUIName = function() { + const V = State.variables; + var name = ""; + if (V.nurseryNameCaps === "The Nursery") + name = "Nursery" + else + name = V.nurseryNameCaps; + return `<<link "${name}""Nursery">><</link>> `} window.ClinicUIName = function() { const V = State.variables; var name = ""; diff --git a/src/js/assayJS.tw b/src/js/assayJS.tw index bd686508b724c616dd703048e10baa8194d091ed..f3c239ac12f764fd28c6b67568355cba840c7767 100644 --- a/src/js/assayJS.tw +++ b/src/js/assayJS.tw @@ -224,7 +224,7 @@ window.inferiorRaceP = function inferiorRaceP(slave) { window.isLeaderP = function isLeaderP(slave) { const V = State.variables; - const leaders = [V.HeadGirl, V.Bodyguard, V.Recruiter, V.Concubine, V.Nurse, V.Attendant, V.Madam, V.DJ, V.Milkmaid, V.Stewardess, V.Schoolteacher, V.Wardeness]; + const leaders = [V.HeadGirl, V.Bodyguard, V.Recruiter, V.Concubine, V.Nurse, V.Attendant, V.Matron, V.Madam, V.DJ, V.Milkmaid, V.Stewardess, V.Schoolteacher, V.Wardeness]; return leaders.some(leader => leader.ID && leader.ID === slave.ID); }; @@ -972,6 +972,9 @@ window.PCTitle = function PCTitle() { if (V.arcadeSlaves >= 15) { titles.push("Comptroller of the Arcade"); } + if (V.nurserySlave >= 10) { + titles.push("Caretaker of the Infants"); + } let schoolsPresent = [], schoolsPerfected = [], schoolTitle = ""; if (V.TSS.schoolProsperity >= 10) { @@ -1487,6 +1490,7 @@ window.DegradingName = function DegradingName(slave) { const V = State.variables; const leadershipPosition = [ "be the Attendant", + "be the Matron", "be the Stewardess", "be the Milkmaid", "be the DJ", @@ -1824,6 +1828,9 @@ window.DegradingName = function DegradingName(slave) { case "be the Attendant": slave.slaveName = jsEither(["Bath", "Spa"]); break; + case "be the Matron": + slave.slaveName = jsEither(["Nursery", "Matron"]); + break; case "be the Stewardess": slave.slaveName = jsEither(["Servant", "Maid"]); break; diff --git a/src/js/assignJS.tw b/src/js/assignJS.tw index 7106cd7449b3dd237b6d062dfb5753da333b12b2..e13a357854b34c62c686564172e31417eb12ed66 100644 --- a/src/js/assignJS.tw +++ b/src/js/assignJS.tw @@ -204,8 +204,22 @@ window.assignJob = function assignJob(slave, job) { break; } break; + + case "work as a nanny": + case "nursery": + slave.assignment = "work as a nanny"; + slave.assignmentVisible = 0; + V.nurserySlaves++; + V.NurseryiIDs.push(slave.ID); + switch (V.nurseryDecoration) { + default: + slave.livingRules = "normal"; + break; + } + break; case "be the attendant": + case "be the matron": case "be the dj": case "be the madam": case "be the milkmaid": @@ -315,6 +329,8 @@ window.removeJob = function removeJob(slave, assignment) { V.Schoolteacher = 0; if (V.Attendant !== 0 && slave.ID === V.Attendant.ID) V.Attendant = 0; + if (V.Matron !== 0 && slave.ID === V.Matron.ID) + V.Matron = 0; if (V.Nurse !== 0 && slave.ID === V.Nurse.ID) V.Nurse = 0; if (V.Stewardess !== 0 && slave.ID === V.Stewardess.ID) diff --git a/src/js/economyJS.tw b/src/js/economyJS.tw index fc46d2ff5e45079dd0c5436d5bd0216de8298120..425b7e525ce0d10437b7426b06e0437398df38f9 100644 --- a/src/js/economyJS.tw +++ b/src/js/economyJS.tw @@ -6,7 +6,7 @@ window.Job = Object.freeze({ BABY_FACTORY: 'labor in the production line', BROTHEL: 'work in the brothel', MADAM: 'be the Madam', ARCADE: 'be confined in the arcade', SERVANT: 'work as a servant', SERVER: 'be a servant', STEWARD: 'be the Stewardess', CLUB: 'serve in the club', DJ: 'be the DJ', JAIL: 'be confined in the cellblock', WARDEN: 'be the Wardeness', CLINIC: 'get treatment in the clinic', NURSE: 'be the Nurse', - HGTOY: 'live with your Head Girl', SCHOOL: 'learn in the schoolroom', TEACHER: 'be the Schoolteacher', SPA: 'rest in the spa', ATTEND: 'be the Attendant', + HGTOY: 'live with your Head Girl', SCHOOL: 'learn in the schoolroom', TEACHER: 'be the Schoolteacher', SPA: 'rest in the spa', ATTEND: 'be the Attendant', NANNY: 'work as a nanny', MATRON: 'be the Matron', REST: 'rest'}); window.PersonalAttention = Object.freeze({TRADE: 'trading', WAR: 'warfare', SLAVING: 'slaving', ENGINEERING: 'engineering', MEDICINE: 'medicine', MAID: 'upkeep', HACKING: 'hacking'}); @@ -374,7 +374,7 @@ window.getSlaveCost = function(s) { cost += rulesCost; } break; - case Job.SPA: + case Job.SPA: case Job.NANNY: if(s.livingRules === LivingRule.LUXURIOUS) { cost += rulesCost * 1.75; } else if(s.livingRules == LivingRule.NORMAL) { @@ -402,7 +402,7 @@ window.getSlaveCost = function(s) { } break; case Job.MADAM: case Job.DJ: case Job.NURSE: case Job.WARDEN: - case Job.ATTEND: case Job.STEWARD: case Job.MILKMAID: case Job.TEACHER: + case Job.ATTEND: case Job.MATRON: case Job.STEWARD: case Job.MILKMAID: case Job.TEACHER: cost += rulesCost * 2; break; default: diff --git a/src/js/rulesAssistant.tw b/src/js/rulesAssistant.tw index 8d8ef4c412f5f8a116183d9a5f83cfa9dcbfba4e..b074e2eef8e7e451899e4a11686148aa1b19b02a 100644 --- a/src/js/rulesAssistant.tw +++ b/src/js/rulesAssistant.tw @@ -91,6 +91,13 @@ window.RAFacilityRemove = function RAFacilityRemove(slave, rule) { } break; + case "work as a nanny": + if (slave.assignment === rule.setAssignment) { + r += `<br>${slave.slaveName} has been removed from ${V.nurseryName} and has been assigned to ${rule.removalAssignment}.`; + assignJob(slave, rule.removalAssignment); + } + break; + case "get treatment in the clinic": if (slave.assignment === rule.setAssignment) { r += `<br>{slave.slaveName} has been removed from ${V.clinicName} and has been assigned to ${rule.removalAssignment}.`; diff --git a/src/js/rulesAssistantOptions.tw b/src/js/rulesAssistantOptions.tw index 2a669446e16c4e270b742222307d8147b155da90..bfc1caa3058b154efca4b7947dc03a8b6e4ae2e4 100644 --- a/src/js/rulesAssistantOptions.tw +++ b/src/js/rulesAssistantOptions.tw @@ -784,6 +784,7 @@ window.rulesAssistantOptions = (function() { if (V.masterSuite > 0) items.push("Master Suite"); if (V.schoolroom > 0) items.push("Schoolroom"); if (V.spa > 0) items.push("Spa"); + if (V.nursery > 0) item.push("Nursery"); if (V.clinic > 0) items.push("Clinic"); if (V.cellblock > 0) items.push("Cellblock"); items.forEach( @@ -815,6 +816,7 @@ window.rulesAssistantOptions = (function() { "Master Suite": "serve in the master suite", "Schoolroom": "learn in the schoolroom", "Spa": "rest in the spa", + "Nursery": "work as a nanny", "Clinic": "get treatment in the clinic", "Cellblock": "be confined in the cellblock", }[what]; diff --git a/src/js/storyJS.tw b/src/js/storyJS.tw index d58fa2bea501a38636a24c4c0c744bf3997f2fbf..cc9061f1da641a265552375041d14eea4e83a03d 100644 --- a/src/js/storyJS.tw +++ b/src/js/storyJS.tw @@ -736,6 +736,7 @@ window.expandFacilityAssignments = function(facilityAssignments) { var assignmentPairs = { "serve in the club": "be the DJ", "rest in the spa": "be the Attendant", + "work as a nanny": "be the Matron", "work in the brothel": "be the Madam", "work in the dairy": "be the Milkmaid", "work as a servant": "be the Stewardess", diff --git a/src/npc/asDump.tw b/src/npc/asDump.tw index 1eb348f34316a41a9f421e1616a15aab197989ea..e71ec4a8bbdab66de4734b9eb0224fd4fa376899 100644 --- a/src/npc/asDump.tw +++ b/src/npc/asDump.tw @@ -32,6 +32,7 @@ <<case $Milkmaid.ID>><<set $Milkmaid = $activeSlave>> <<case $Schoolteacher.ID>><<set $Schoolteacher = $activeSlave>> <<case $Attendant.ID>><<set $Attendant = $activeSlave>> + <<case $Matron.ID>><<set $Matron = $activeSlave>> <<case $Nurse.ID>><<set $Nurse = $activeSlave>> <<case $Stewardess.ID>><<set $Stewardess = $activeSlave>> <<case $Wardeness.ID>><<set $Wardeness = $activeSlave>> diff --git a/src/npc/descriptions/fAnus.tw b/src/npc/descriptions/fAnus.tw index 005cd1a1933332994441629ce06e865714d4ed5e..78dcd2ea0993f2e20f74f9d77207069c9de2aec5 100644 --- a/src/npc/descriptions/fAnus.tw +++ b/src/npc/descriptions/fAnus.tw @@ -188,6 +188,8 @@ $His anus is invitingly bleached, $He goes off to carefully wash $his _Anus to avoid besmirching the nice clean dairy. <<case "work as a servant">> $He rushes to wash $his _Anus, impatient to get back to $his many chores. + <<case "work as a nanny">> + $He goes off to wash $his _Anus, before hurrying to continue taking care of the children in $nurseryName. <<case "whore">> $He uses an enema to clean $his _Anus before returning to offering it for sale. <<case "serve the public">> diff --git a/src/npc/descriptions/fBoobs.tw b/src/npc/descriptions/fBoobs.tw index 7e4be291a2d7dbf678ce45c5fbe3aef149df8fb8..034db96e5e83b3ce3bd0c4e19ec06eca4717c5c6 100644 --- a/src/npc/descriptions/fBoobs.tw +++ b/src/npc/descriptions/fBoobs.tw @@ -206,6 +206,8 @@ tits. $He goes to beautify $his <<if $activeSlave.boobs > 1500>>acre of cleavage<<elseif $activeSlave.boobs > 500>>generous cleavage<<else>>chest<</if>> so it can again serve as an ornament to $clubName. <<case "work as a servant">> $He rushes to wash $his <<if $activeSlave.boobs > 1500>>acre of cleavage<<elseif $activeSlave.boobs > 500>>generous cleavage<<else>>chest<</if>>, afraid $he's fallen behind on the chores while you used $him. +<<case "work as a nanny">> + $He rushes to wash $his <<if $activeSlave.boobs > 1500>>acre of cleavage<<elseif $activeSlave.boobs > 500>>generous cleavage<<else>>chest<</if>>, before hurrying to continue taking care of the children in $nurseryName. <<case "rest">> $He stumbles off to wash $his <<if $activeSlave.boobs > 1500>>acre of cleavage<<elseif $activeSlave.boobs > 500>>generous cleavage<<else>>chest<</if>> before crawling back into bed. <<case "train slaves">> diff --git a/src/npc/descriptions/fButt.tw b/src/npc/descriptions/fButt.tw index 82fd5f9e2127760a5e96495ce04b28aed83ed73a..5eaaae8fe3fc703db4f83b2c0530e7e22df9c3d4 100644 --- a/src/npc/descriptions/fButt.tw +++ b/src/npc/descriptions/fButt.tw @@ -230,6 +230,8 @@ $His anus is invitingly bleached, $He goes off to carefully wash $his <<if canDoVaginal($activeSlave) && canDoAnal($activeSlave)>>holes<<elseif canDoVaginal($activeSlave) || canDoAnal($activeSlave)>>fuckhole<<else>>face<</if>> to avoid besmirching the nice clean dairy. <<case "work as a servant">> $He rushes to wash $his <<if canDoVaginal($activeSlave) && canDoAnal($activeSlave)>>holes<<elseif canDoVaginal($activeSlave) || canDoAnal($activeSlave)>>fuckhole<<else>>face<</if>>, impatient to get back to $his undiminished chores. +<<case "work as a nanny">> + $He rushes to wash $his <<if canDoVaginal($activeSlave) && canDoAnal($activeSlave)>>holes<<elseif canDoVaginal($activeSlave) || canDoAnal($activeSlave)>>fuckhole<<else>>face<</if>>, before hurrying to continue taking care of the children in $nurseryName. <</switch>> <</if>> diff --git a/src/npc/descriptions/fVagina.tw b/src/npc/descriptions/fVagina.tw index 5f92da0702760febf498c1b945759e5599b06e6a..e26707c0a8261cf963ec7e1fe8b01abe8d595f09 100644 --- a/src/npc/descriptions/fVagina.tw +++ b/src/npc/descriptions/fVagina.tw @@ -525,6 +525,8 @@ You call $him over so you can to avoid besmirching the nice clean dairy. <<case "work as a servant">> mostly to keep everything $he has to clean from getting any dirtier. + <<case "work as a nanny">> + before hurrying to continue taking care of the children in $nurseryName. <<case "whore">> before returning to offering it for sale. <<case "serve the public">> diff --git a/src/npc/fFeelings.tw b/src/npc/fFeelings.tw index 8c731b8993c5c2fc8b9031734766c5553084b3d8..09a08439a86a15bc29a51382dca75baf2d247a24 100644 --- a/src/npc/fFeelings.tw +++ b/src/npc/fFeelings.tw @@ -946,6 +946,8 @@ My favorite part of my body i<<s>> <</if>> <<case "rest" "rest in the spa">> Thank you for letting me re<<s>>t. +<<case "work as a nanny">> + I love taking care of the babi<<s>>. I hope I get to see them grow up to into good <<s>>lave<<s>> for you. <<default>> Being a <<s>>e<<x>> <<s>>lave is hard work. <</switch>> diff --git a/src/pregmod/FSuckle.tw b/src/pregmod/FSuckle.tw index 8c011ed6cec50d5c8d4db985d95194fe141553b1..e8ac0bfa98b10720f4cdcb67d7437cafd2d8f61b 100644 --- a/src/pregmod/FSuckle.tw +++ b/src/pregmod/FSuckle.tw @@ -408,6 +408,8 @@ Once you <<if _mood == 1>>wake and slowly rise to your feet, you help $him clean before returning to the dairy. <<case "work as a servant">> mostly to keep everything $he has to clean from getting any dirtier. +<<case "work as a nanny">> + before heading back to take care of the children. <<case "whore">> before returning to offering $his lovely tits for sale. <<case "serve the public">> diff --git a/src/pregmod/JobFulfillmentCenter/JobFulfillmentCenterOrder.tw b/src/pregmod/JobFulfillmentCenter/JobFulfillmentCenterOrder.tw index 072a815c75f482062a0b1ff00de50000342c79b4..dac6f3e2d7cd00bbbbb638203137fd914769e330 100644 --- a/src/pregmod/JobFulfillmentCenter/JobFulfillmentCenterOrder.tw +++ b/src/pregmod/JobFulfillmentCenter/JobFulfillmentCenterOrder.tw @@ -27,6 +27,7 @@ <br>[[Teacher|JobFulfillmentCenterOrder][$JFCOrder = 1, $Role = "Teacher"]] <br>[[Nurse|JobFulfillmentCenterOrder][$JFCOrder = 1, $Role = "Nurse"]] <br>[[Attendant (normal)|JobFulfillmentCenterOrder][$JFCOrder = 1, $Role = "Attendant"]] | [[Attendant (motherly)|JobFulfillmentCenterOrder][$JFCOrder = 1, $Role = "Motherly Attendant"]] + <br>[[Matron|JobFulfillmentCenterOrder][$JFCOrder = 1, $Role = "Matron"]] <br>[[Stewardess|JobFulfillmentCenterOrder][$JFCOrder = 1, $Role = "Stewardess"]] <br>[[Milkmaid|JobFulfillmentCenterOrder][$JFCOrder = 1, $Role = "Milkmaid"]] <br>[[Return|JobFulfillmentCenterOrder]] diff --git a/src/pregmod/fDick.tw b/src/pregmod/fDick.tw index 54661b4ce867aacae6585c3f56b5ed8232cb948b..dc33cc6fc2bf4b35cdb24c377445d933a3c197fc 100644 --- a/src/pregmod/fDick.tw +++ b/src/pregmod/fDick.tw @@ -244,6 +244,8 @@ $He goes off to carefully wash $his dick to avoid besmirching the nice clean dairy. <<case "work as a servant">> $He rushes to wash $his dick, impatient to get back to $his undiminished chores. + <<case "work as a nanny">> + $He runs off to wash off $his dick before heading back to the $nurseryName. <</switch>> <</if>> diff --git a/src/pregmod/matronSelect.tw b/src/pregmod/matronSelect.tw new file mode 100644 index 0000000000000000000000000000000000000000..60e89eb751ecdfa47fd2d8caff52099637c601c2 --- /dev/null +++ b/src/pregmod/matronSelect.tw @@ -0,0 +1,19 @@ +:: Matron Select [nobr] + +<<set $nextButton = "Back", $nextLink = "Nursery", $showEncyclopedia = 1, $encyclopedia = "Matron">> +<<showallAssignmentFilter>> +<<if ($Matron != 0)>> + ''__@@.pink;<<= SlaveFullName($Matron)>>@@__'' is serving as your Matron.<br><br>She will manage the nursery. +<<else>> + You have not selected a Matron. +<</if>> + +<br><br>''Appoint a Matron from your devoted slaves:'' +<br><br>[[None|Matron Workaround][$i = -1]] +<br><br> +<<assignmentFilter>> +<span id="ComingGoing"> + <<showallAssignmentFilter>> + <<include "Slave Summary">> + <<resetAssignmentFilter>> +</span> \ No newline at end of file diff --git a/src/pregmod/matronWorkaround.tw b/src/pregmod/matronWorkaround.tw new file mode 100644 index 0000000000000000000000000000000000000000..155fe02db44b436384258a2840f94b88f5e96c55 --- /dev/null +++ b/src/pregmod/matronWorkaround.tw @@ -0,0 +1,12 @@ +:: Matron Workaround [silently] + +<<if $Matron != 0>> + <<= removeJob($Matron, "be the Matron")>> +<</if>> +<<if $i > -1>> + <<= assignJob($slaves[$i], "be the Matron")>> + <<set $slaves[$i].livingRules = "luxurious">> + <<set $Matron = $slaves[$i]>> +<</if>> + +<<goto "Nursery">> \ No newline at end of file diff --git a/src/pregmod/nursery.tw b/src/pregmod/nursery.tw new file mode 100644 index 0000000000000000000000000000000000000000..3e723bedc6001fabbaba3224cde80724fee1e568 --- /dev/null +++ b/src/pregmod/nursery.tw @@ -0,0 +1,136 @@ +:: Nursery [nobr] + +<<set $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Nursery", $showEncyclopedia = 1, $encyclopedia = "Nursery", $nurserySlaves = $NurseryiIDs.length, $Flag = 0>> + +<<if $nurseryName != "the Nursery">> + <<set $nurseryNameCaps = $nurseryName.replace("the ", "The ")>> +<</if>> +<<nurseryAssignmentFilter>> +$nurseryNameCaps +<<switch $nurseryDecoration>> +<<case "Roman Revivalist">> + is run with the Roman dream in mind, with wide open windows exposing the babies to the elements. The sleek marble halls bring a sense of serenity and duty as wet nurses wander the halls. +<<case "Aztec Revivalist">> + is lined head to toe in illustrious Aztec gold. Tiny but notable subscripts lay in plaques to honor the mothers who died giving birth, the children of said mothers, alive or dead, are tirelessly watched over to tend to their every need. +<<case "Egyptian Revivalist">> + is decorated by sleek, sandstone tablets, golden statues, and even grander Egyptian wall sculptures, many of them depicting the conception, birth, and raising of a child. Each babe is reverently wrapped in linen covers as they drift to sleep to the stories of mighty pharaohs and prosperous palaces. +<<case "Edo Revivalist">> + is minimalistic in nature, but the errant paintings of cherry blossoms and vibrant Japanese maples give a certain peaceful air as the caretakers do their duties. +<<case "Arabian Revivalist">> + is decorated wall to wall with splendorous carvings and religious Hamsas meant to protect the fostering children. +<<case "Chinese Revivalist">> + is ripe with Chinese spirit. Depictions of colorful dragons and oriental designs grace the halls, rooms, and cribs of the babies who reside inside. +<<case "Chattel Religionist">> + is decorated with childish religious cartoons and artistic tapestries of slaves bowing in submission, their themes always subsiding varying degrees of sexual worship. The caretakers that wander the halls obediently wear their habits, and never waste a moment to tenderly lull the children to sleep with stories of their prophet. +<<case "Degradationist">> + is bare and sullen. The cries of the neglected children destined for slavery trying to find comfort in their burlap coverings echo the halls, while those that await freedom are raised among luxury and are taught to look down on their less fortunate peers. +<<case "Repopulation Focus">> + is designed to be very open and public; a showing testament to your arcology's repopulation efforts. For those old enough to support them, they are strapped with big, but body warming, empathy bellies as to remind them of their destiny. +<<case "Eugenics">> + is of utmost quality without a single pleasantry missing—if the parents are of the elite blood of course. While there are rare stragglers of unworthy genes, the child populace overall is pampered with warm rooms and plentiful small toys. +<<case "Asset Expansionist">> + is not so much decorated as it is intelligently staffed. Every passerby, slave or not, burns the image of their jiggling asses and huge, wobbling tits into the minds of the children. +<<case "Transformation Fetishist">> + is kept simple and clean. From their toys down to the nursemaids, the babies are exposed to the wonders of body transformation whenever possible. +<<case "Gender Radicalist">> + is decorated by cheery cartoon depictions of slaves of many shapes, sizes, and genitals, all of them undeniably feminine. The elated smiles and yips of the nurses getting reamed constantly instill the appreciation of nice, pliable buttholes. +<<case "Gender Fundamentalist">> + is simply designed and painted with soft feminine colors. The staff heavily encourage the children to play dress up and house, subtly sculpting their minds to proper gender norms and properly put them in line if they try to do otherwise. +<<case "Physical Idealist">> + is furnished with kiddy health books and posters; their caretakers making painstakingly sure that the importance is drilled into their heads at a young age. Their food is often littered with vitamins and supplements to keep the children growing strong. +<<case "Supremacist">> + is designed and structured to give those of $arcologies[0].FSSupremacistRace ethnicity the limelight of the nursery, while the others stay sectioned off and neglected to the world. +<<case "Subjugationist">> + is made to foster and raise the young children of $arcologies[0].FSSubjugationistRace ethnicity. They are reminded of their place with every failure and are encouraged to submissively follow their stereotypes at a young ripe age. +<<case "Paternalist">> + is well-stocked and by Paternalistic customs, constantly swaddle the children with love and attention. With the warm colors and sound of child laughter, to the untrained eye, the children actually seem free. +<<case "Pastoralist">> + is decorated to make the children grow up thinking that a life focused on breast milk, cum, and other human secretions are part of the norm. The milky tits swaying above their cow-patterned cribs certainly help with that. +<<case "Maturity Preferentialist">> + decorations remind the kids to respect those curvy and mature. The older nurserymaids are always flattered whenever the children try to act like adults and take care of the younger toddlers for them. +<<case "Youth Preferentialist">> + is making young children the center of attention, their rooms supplied with plenty of toys, blankets, and surrogate mothers at their beck and call. +<<case "Body Purist">> + is decorated to be very clean cut and sterilized with perfect corners and curves; symbolic of the human figure. Nuserymaids are encouraged to show off their natural assets to show the children what the appropriate body should be. +<<case "Slimness Enthusiast">> + constantly encourages the kids to try and keep their slim and cute physiques. They are given perfectly metered meals to make this possible. +<<case "Hedonistic">> + would make any toddler drool in amazement. Meals and naps every other hour, cribs stalked with toys and blankets, and plush slaves carry them to and fro without preamble. A delicious layer of baby fat is the ideal figure of a baby, and they couldn't be happier. +<<default>> + is as comfortable and child-friendly as it needs to be. They have everything they need to grow into a proper slave. +<</switch>> + +<<if $nurserySlaves > 2>> + $nurseryNameCaps is bustling with activity. Nannies are busily moving about, feeding babies and changing diapers. +<<elseif $nurserySlaves > 0>> + $nurseryNameCaps is working steadily. Nannies are moving about, cleaning up and feeding hungry babies. +<<elseif $Matron != 0>> + $Matron.slaveName is alone in $nurseryName, and has nothing to do but keep the place clean and look after the babies. +<<else>> + It's empty and quiet. [[Decommission the Nursery|Main][$nursery = 0, $nurseryDecoration = "standard"]] +<</if>> + +<<if $nurserySlaves > 0>> + <<if $Matron != 0>><<set _X = 1>><<else>><<set _X = 0>><</if>> + <<set _NewPop = $nurserySlaves+$dormitoryPopulation+_X>> + <<link "Remove all slaves" "Nursery">> + <<if $Matron != 0>> + <<= assignJob($Matron, "rest")>> + <</if>> + <<for $nurserySlaves > 0>> + <<= assignJob($slaves[$slaveIndices[$NurseryiIDs[0]]], "nanny")>> + <</for>> + <</link>> + <<if _NewPop > $dormitory>> + @@.red;Dormitory capacity will be exceeded.@@ + <</if>> +<</if>> + +<<set _Tmult0 = Math.trunc($nursery*1000*$upgradeMultiplierArcology)>> +<br>It can support $nursery nannies. Currently there <<if $nurserySlaves == 1>>is<<else>>are<</if>> $nurserySlaves nann<<if $nurserySlaves != 1>>ies<<else>>y<</if>> at $nurseryNameCaps. +[[Expand the nursery|Nursery][$cash -= _Tmult0, $nursery += 5, $PC.engineering += .1]] //Costs <<print cashFormat(_Tmult0)>> and will increase upkeep costs// + +<br><br> +<<if $Matron != 0>> + <<set $Flag = 2>> + <<include "Slave Summary">> +<<else>> + You do not have a slave serving as a Matron. [[Appoint one|Matron Select]] +<</if>> + +<br><br> +<<if ($nursery <= $nurserySlaves)>> + ''$nurseryNameCaps is full and cannot hold any more slaves'' +<<elseif ($slaves.length > $nurserySlaves)>> + <<link "''Send a slave to $nurseryName''">> + <<replace #ComingGoing>> + <<resetAssignmentFilter>> + <<set $Flag = 0>> + <<include "Slave Summary">> + <</replace>> + <</link>> +<</if>> + +<<if $nurserySlaves > 0>> + | <<link "''Bring a slave out of $nurseryName''">> + <<replace #ComingGoing>> + <<nurseryAssignmentFilter>> + <<set $Flag = 1>> + <<include "Slave Summary">> + <<resetAssignmentFilter>> + <</replace>> + <</link>> +<<else>> + <br><br>//$nurseryNameCaps is empty for the moment.<br>// +<</if>> + +<br><br> +<<assignmentFilter >> +<span id="ComingGoing"> + <<nurseryAssignmentFilter>> + <<set $Flag = 1>> + <<include "Slave Summary">> + <<resetAssignmentFilter>> +</span> + +<br><br>Rename $nurseryName: <<textbox "$nurseryName" $nurseryName "Nursery">> //Use a noun or similar short phrase// diff --git a/src/pregmod/widgets/assignmentFilterWidget.tw b/src/pregmod/widgets/assignmentFilterWidget.tw index 22fb2586531aa5f1c430daed659d0a0ee8169ba7..f3da7f16c42f79e687db1ade21e64608dfe8606d 100644 --- a/src/pregmod/widgets/assignmentFilterWidget.tw +++ b/src/pregmod/widgets/assignmentFilterWidget.tw @@ -59,6 +59,10 @@ <<set $slaves.map(function(y){y.assignmentVisible = 0})>><<set $slaves.filter(function(x){return x.assignment == "rest in the spa" || x.assignment == "be the Attendant"}).map(function(y){y.assignmentVisible = 1})>> <</widget>> +<<widget "nurseryAssignmentFilter">> + <<set $slaves.map(function(y){y.assignmentVisible = 0})>><<set $slaves.filter(function(x){return x.assignment == "work as a nanny" || x.assignment == "be the Matron"}).map(function(y){y.assignmentVisible = 1})>> +<</widget>> + <<widget "suiteAssignmentFilter">> <<set $slaves.map(function(y){y.assignmentVisible = 0})>><<set $slaves.filter(function(x){return x.assignment == "serve in the master suite" || x.assignment == "be your Concubine"}).map(function(y){y.assignmentVisible = 1})>> <</widget>> @@ -83,6 +87,7 @@ <<print " | ">><<link Penthouse>><<penthouseAssignmentFilter>><<replace #ComingGoing>><<include 'Slave Summary'>><<set $Flag = 0>><<resetAssignmentFilter>><</replace>><</link>> <<if passage() != "Schoolroom">><<print " | ">><<link Schoolroom>><<schoolAssignmentFilter>><<replace #ComingGoing>><<set $Flag = 0>><<include 'Slave Summary'>><<resetAssignmentFilter>><</replace>><</link>><</if>> <<if passage() != "Spa">><<print " | ">><<link Spa>><<spaAssignmentFilter>><<replace #ComingGoing>><<set $Flag = 0>><<include 'Slave Summary'>><<resetAssignmentFilter>><</replace>><</link>><</if>> + <<if passage() != "Nursery">><<print " | ">><<link Nursery>><<nurseryAssignmentFilter>><<replace #ComingGoing>><<set $Flag = 0>><<include 'Slave Summary'>><<resetAssignmentFilter>><</replace>><</link>><</if>> <<if passage() != "Master Suite">><<print " | ">><<link Suite>><<suiteAssignmentFilter>><<replace #ComingGoing>><<set $Flag = 0>><<include 'Slave Summary'>><<resetAssignmentFilter>><</replace>><</link>><</if>> <<if passage() != "Servants' Quarters">><<print " | ">><<link Quarters>><<quartersAssignmentFilter>><<set $Flag = 0>><<replace #ComingGoing>><<include 'Slave Summary'>><<resetAssignmentFilter>><</replace>><</link>><</if>> <<resetAssignmentFilter>> @@ -103,6 +108,7 @@ <<link Penthouse>><<penthouseAssignmentFilter>><<replace $args.full>><<include 'Slave Summary'>><</replace>><</link>><<print " | ">> <<link Schoolroom>><<schoolAssignmentFilter>><<replace $args.full>><<include 'Slave Summary'>><</replace>><</link>><<print " | ">> <<link Spa>><<spaAssignmentFilter>><<replace $args.full>><<include 'Slave Summary'>><</replace>><</link>><<print " | ">> + <<link Nursery>><<nurseryAssignmentFilter>><<replace $args.full>><<include 'Slave Summary'>><<replace>><</link>><<print " | ">> <<link Suite>><<suiteAssignmentFilter>><<replace $args.full>><<include 'Slave Summary'>><</replace>><</link>><<print " | ">> <<link Quarters>><<spaAssignmentFilter>><<replace $args.full>><<include 'Slave Summary'>><</replace>><</link>> <<resetAssignmentFilter>> diff --git a/src/pregmod/widgets/pregmodWidgets.tw b/src/pregmod/widgets/pregmodWidgets.tw index b7e8384cdb9a3f4727ebeeb56ae802387da322cc..61e860b324d450f2e6207c9872aff4f99fa72789 100644 --- a/src/pregmod/widgets/pregmodWidgets.tw +++ b/src/pregmod/widgets/pregmodWidgets.tw @@ -313,6 +313,9 @@ <<if ndef $args[0].skillAT>> <<set $args[0].skillAT = 0>> <</if>> +<<if ndef $args[0].skillMT>> + <<set $args[0].skillMT = 0>> +<</if>> <<if ndef $args[0].skillST>> <<set $args[0].skillST = 0>> <</if>> diff --git a/src/uncategorized/#README-includes.txt b/src/uncategorized/#README-includes.txt index 85641a3249348236130a34d29f35fc12d7d073d1..4d84afaa1630a07d10134f15f291e40d86e0a2ee 100644 --- a/src/uncategorized/#README-includes.txt +++ b/src/uncategorized/#README-includes.txt @@ -42,6 +42,7 @@ facilities schoolroomReport servantsQuartersReport spaReport + nurseryReport economics diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw index 70c89d2a1c427d58afba3ccef8e1ea0f1dcc6dee..f0fcfdf3772449c30ef7e71cd5f4b7dca3101f30 100644 --- a/src/uncategorized/BackwardsCompatibility.tw +++ b/src/uncategorized/BackwardsCompatibility.tw @@ -11,7 +11,7 @@ <</if>> <<if def $youngCareers>> - <<unset $youngCareers, $educatedCareers, $uneducatedCareers, $gratefulCareers, $menialCareers, $entertainmentCareers, $whoreCareers, $HGCareers, $madamCareers, $DJCareers, $bodyguardCareers, $wardenessCareers, $nurseCareers, $attendantCareers, $milkmaidCareers, $stewardessCareers, $schoolteacherCareers>> + <<unset $youngCareers, $educatedCareers, $uneducatedCareers, $gratefulCareers, $menialCareers, $entertainmentCareers, $whoreCareers, $HGCareers, $madamCareers, $DJCareers, $bodyguardCareers, $wardenessCareers, $nurseCareers, $attendantCareers, $matronCareers, $milkmaidCareers, $stewardessCareers, $schoolteacherCareers>> <<unset $whiteNationalities, $asianNationalities, $latinaNationalities, $middleeasternNationalities, $blackNationalities, $indoaryanNationalities, $pacificislanderNationalities, $malayNationalities, $amerindianNationalities, $southerneuropeanNationalities, $semiticNationalities>> @@ -653,6 +653,11 @@ <<if ndef $tanks>> <<set $tanks = []>> <</if>> + +<<if ndef $nursery>> + <<set $nursery = 0>> +<</if>> + <<if ndef $farmyard>> <<set $farmyard = 0>> <</if>> @@ -683,6 +688,24 @@ <<if ndef $boughtFelines>> <<set $boughtFelines = 0>> <</if>> +<<if ndef $defaultCanine>> + <<set $defaultCanine = "wolf">> +<</if>> +<<if ndef $defaultHooved>> + <<set $defaultHooved = "horse">> +<</if>> +<<if ndef $defaultFeline>> + <<set $defaultFeline = "cougar">> +<</if>> +<<if ndef $defaultCaninePlural>> + <<set $defaultCaninePlural = "wolves">> +<</if>> +<<if ndef $defaultHoovedPlural>> + <<set $defaultHoovedPlural = "horses">> +<</if>> +<<if ndef $defaultFelinePlural>> + <<set $defaultFelinePlural = "cougars">> +<</if>> <<if ndef $activeCanine>> <<set $activeCanine = "wolf">> <</if>> @@ -731,6 +754,8 @@ <<if ndef $farmyardNameCaps>> <<set $farmyardNameCaps = "The Farmyard">> <</if>> + + <<if ndef $clinicUpgradePurge>> <<set $clinicUpgradePurge = 0>> <</if>> diff --git a/src/uncategorized/buildingWidgets.tw b/src/uncategorized/buildingWidgets.tw index 15f38f01257e9c326383bd7de575b55b1ffa955f..af4a0b6409171db61ea066a04cc63fc59985af9a 100644 --- a/src/uncategorized/buildingWidgets.tw +++ b/src/uncategorized/buildingWidgets.tw @@ -142,6 +142,7 @@ if(!Macro.has('sectorblock')) { <<if $dojo > 1>>[[Armory|BG Select]] <<if $Bodyguard != 0>>(BG)<</if>> <</if>> <<if $servantsQuarters>> <<print ServantQuartersUIName()>> ($servantsQuartersSlaves/$servantsQuarters<<if $Stewardess>>, L<</if>>)<</if>> <<if $spa>> <<print SpaUIName()>> ($spaSlaves/$spa<<if $Attendant>>, L<</if>>)<</if>> + <<if $nursery>> <<print NurseryUIName()>> ($nurseryBabies, $nurserySlaves/$nursery<<if $Matron>>, L<</if>>)<</if>> <<if $clinic>> <<print ClinicUIName()>> ($clinicSlaves/$clinic<<if $Nurse>>, L<</if>>)<</if>> <<if $schoolroom>> <<print SchoolRoomUIName()>> ($schoolroomSlaves/$schoolroom<<if $Schoolteacher>>, L<</if>>)<</if>> <<if $cellblock>> <<print CellblockUIName()>> ($cellblockSlaves/$cellblock<<if $Wardeness>>, L<</if>>)<</if>> diff --git a/src/uncategorized/costsReport.tw b/src/uncategorized/costsReport.tw index cad3c54ed3caf1e1387e5dfdee2a137662c0b945..af4b0d7f7cfccc0f37f681061b0e2963352e62ef 100644 --- a/src/uncategorized/costsReport.tw +++ b/src/uncategorized/costsReport.tw @@ -84,6 +84,9 @@ your __personal living expenses__ are <<print cashFormat(($girls*(250+($economy* <<if ($servantsQuarters > 0) && ($servantsQuartersUpgradeMonitoring > 0)>> <br>__Servants' Quarters__ maintenance: <<print cashFormat((0.2*$servantsQuartersUpgradeMonitoring*$servantsQuarters*$facilityCost))>> <</if>> +<<if $nursery > 0>> + <br>__Nursery maintenance: <<print cashFormat($nursery*$facilityCost)>> +<</if>> <<if $farmyard > 0>> <br>__Farmyard__ maintenance: <<print cashFormat($farmyard*$facilityCost)>> <</if>> @@ -274,7 +277,7 @@ your __personal living expenses__ are <<print cashFormat(($girls*(250+($economy* <<else>> <<set _livingExpense = $rulesCost>> <</if>> - <<case "rest in the spa">> + <<case "rest in the spa" "work as a nanny">> <<if $slaves[$i].livingRules == "luxurious">> <<set _livingExpense = ($rulesCost*1.75)>> <<elseif $slaves[$i].livingRules == "normal">> @@ -298,7 +301,7 @@ your __personal living expenses__ are <<print cashFormat(($girls*(250+($economy* <<else>> <<set _livingExpense = ($rulesCost*.9)>> <</if>> - <<case "be the Madam" "be the DJ" "be the Nurse" "be the Wardeness" "be the Attendant" "be the Schoolteacher" "be the Stewardess" "be the Milkmaid">> + <<case "be the Madam" "be the DJ" "be the Nurse" "be the Wardeness" "be the Attendant" "be the Matron" "be the Schoolteacher" "be the Stewardess" "be the Milkmaid">> <<set _livingExpense = ($rulesCost*2)>> <<default>> <<if $slaves[$i].livingRules == "luxurious">> diff --git a/src/uncategorized/endWeek.tw b/src/uncategorized/endWeek.tw index 6b19bccbbeaf64389117fa769d62f5b074585fe7..023e2cec24ab5734250f0439006221344f8f971f 100644 --- a/src/uncategorized/endWeek.tw +++ b/src/uncategorized/endWeek.tw @@ -186,7 +186,7 @@ <<set $PC.pregWeek++>> <</if>> -<<set $HGEnergy = 0, $HGCum = 0, $HGSlaveSuccess = 0, $HeadGirl = 0, $Recruiter = 0, $Madam = 0, $madamCashBonus = 0, $DJ = 0, $DJRepBonus = 0, $Milkmaid = 0, $Collectrix = 0, $Stewardess = 0, $Schoolteacher = 0, $Wardeness = 0, $Concubine = 0, $Attendant = 0, $Nurse = 0, $Bodyguard = 0, $fuckSlaves = 0, $freeSexualEnergy = 0, $publicServants = 0, $cumSlaves = 0, $averageDick = 0, $slavesWithWorkingDicks = 0>> +<<set $HGEnergy = 0, $HGCum = 0, $HGSlaveSuccess = 0, $HeadGirl = 0, $Recruiter = 0, $Madam = 0, $madamCashBonus = 0, $DJ = 0, $DJRepBonus = 0, $Milkmaid = 0, $Collectrix = 0, $Stewardess = 0, $Schoolteacher = 0, $Wardeness = 0, $Concubine = 0, $Attendant = 0, $Matron = 0, $Nurse = 0, $Bodyguard = 0, $fuckSlaves = 0, $freeSexualEnergy = 0, $publicServants = 0, $cumSlaves = 0, $averageDick = 0, $slavesWithWorkingDicks = 0>> /* GAMEOVERS */ <<if $slaves.length < 1>> diff --git a/src/uncategorized/futureSociety.tw b/src/uncategorized/futureSociety.tw index 630bc09b9b154437a1174fbb846c13544e854f85..af3c7bf344be5acc6341e317a499eeff73c41bdd 100644 --- a/src/uncategorized/futureSociety.tw +++ b/src/uncategorized/futureSociety.tw @@ -1183,6 +1183,12 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc <<SetFacilityDecoration "spaDecoration">> <</if>> +<<if $nursery > 0>> +<<run ValidateFacilityDecoration("nurseryDecoration")>> +<br>$nurseryNameCaps if decorated in $nurseryDecoration style. +<<SetFacilityDecoration "nurseryDecoration">> +<</if>> + <<if $clinic > 0>> <<run ValidateFacilityDecoration("clinicDecoration")>> <br>$clinicNameCaps is decorated in $clinicDecoration style. diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw index 5a1b8edc5cbade6a613b3334b8fbddcfeecab90a..2fd3b5892150dd26392120924e8c274e0f39e39c 100644 --- a/src/uncategorized/longSlaveDescription.tw +++ b/src/uncategorized/longSlaveDescription.tw @@ -1269,6 +1269,8 @@ is $activeSlave.career, giving $him potential as a Wardeness for <<if $cellblock == 0>>a Cellblock<<else>>$cellblockName<</if>>. <<elseif setup.attendantCareers.includes($activeSlave.career)>> $activeSlave.career, giving $him potential as an Attendant for <<if $spa == 0>>a Spa<<else>>$spaName<</if>>. + <<elseif setup.matronCareers.includes($activeSlave.career)>> + $activeSlave.career, giving $him potential as a Matron for <<if $nursery == 0>>a Nursery<<else>>$nurseryName<</if>>. <<elseif setup.nurseCareers.includes($activeSlave.career)>> $activeSlave.career, giving $him potential as a Nurse for <<if $clinic == 0>>a Clinic<<else>>$clinicName<</if>>. <<elseif setup.schoolteacherCareers.includes($activeSlave.career)>> diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw index 586aa398ab7428eb74dd68b7af326e36a02547ff..15ee026696ade7e46d10349510c3f7af31024891 100644 --- a/src/uncategorized/main.tw +++ b/src/uncategorized/main.tw @@ -71,6 +71,8 @@ $schoolroomNameCaps = $schoolroomNameCaps || "The Schoolroom", $spaName = $spaName || "the Spa", $spaNameCaps = $spaNameCaps || "The Spa", + $nurseryName = $nurseryName || "the Nursery", + $nurseryNameCaps = $nurseryNameCaps || "The Nursery", $clinicName = $clinicName || "the Clinic", $clinicNameCaps = $clinicNameCaps || "The Clinic", $arcadeName = $arcadeName || "the Arcade", diff --git a/src/uncategorized/managePenthouse.tw b/src/uncategorized/managePenthouse.tw index 74dcc2fe8bb719ea83b59cc54118e32d458b6295..c782d99037a75ce3c0109bf1e9c2408829853a71 100644 --- a/src/uncategorized/managePenthouse.tw +++ b/src/uncategorized/managePenthouse.tw @@ -74,6 +74,17 @@ __Penthouse Facilities__ <br> +<<if $cheatMode == 1>> + <<if $nursery == 0>> + [[Build a nursery to raise chilren from birth|Manage Penthouse][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $nursery = 5, $PC.engineering += 1]] @@.red;ALPHA CONTENT@@ + //Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>// + <<else>> + The penthouse has a nursery built where infants can be brought up. + <</if>> +<</if>> + +<br> + <<if $clinic == 0>> [[Expand the surgical recovery area to accommodate patients and a nurse|Manage Penthouse][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $clinic = 5, $PC.engineering += 1]] //Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>// diff --git a/src/uncategorized/reNickname.tw b/src/uncategorized/reNickname.tw index 5de2b3adf568acdc5a42804226f022fb7c43983f..e0704bebdd1643e47c7453eb87005a662233a5ee 100644 --- a/src/uncategorized/reNickname.tw +++ b/src/uncategorized/reNickname.tw @@ -1,4 +1,4 @@ -:: RE nickname [nobr] +:: RE nickname [nobr] <<set $nextButton = "Continue", $nextLink = "AS Dump">> <<if $seed == 1>> @@ -913,6 +913,13 @@ <<set $applyDesc = "enjoys helping your girls, and is happy to learn that the role is part of $his name now.">> <<set $notApplyDesc = "is a bit sad that $his role isn't part of $his name, since $he likes helping your girls and now wonders whether $he'll be allowed to keep doing so.">> +<<case "Matron">> + <<set $nickname = either("'Matron'", "'Mother'", "'Babysitter'")>> + <<set $situationDesc = "has a very important role in ensuring the children in $arcologies[0].name grow up to be the perfect slaves for you.">> + <<set $applyDesc = "is excited and proud when $he learns that $his position in your arcology is a part of $his name now.">> + <<set $notApplyDesc = "is a bit sad that $his role isn't part of $his name, since $he likes taking care of the children and now wonders whether $he'll be allowed to keep doing so.">> + + <<case "Madam">> <<set $nickname = either("'Boss Bitch'", "'Brothel Queen'", "'Madam'", "'Miss Kitty'", "'Mother'", "'Pimp'", "'Pimp Hand'", "'Pimp Queen'", "'Pimparella'", "'Queen Bitch'", "'Whore Queen'")>> <<set $situationDesc = "is in an unusually responsible and pragmatic position, for a slave. $He runs $his whores' lives with almost total control, overseeing the sale of their bodies day in, day out. Some resent $him, some love $him, but all depend on $him.">> diff --git a/src/uncategorized/recruiterSelect.tw b/src/uncategorized/recruiterSelect.tw index 4e1ced6094c6c00d4d86d32529c04dbda10f6418..a0b9266c05d2eac037a0705b5417c576f5be85d0 100644 --- a/src/uncategorized/recruiterSelect.tw +++ b/src/uncategorized/recruiterSelect.tw @@ -52,6 +52,7 @@ <<if $masterSuite>><<set _idleTarget++>><</if>> <<if $schoolroom>><<set _idleTarget++>><</if>> <<if $spa>><<set _idleTarget++>><</if>> +<<if $nursery>><<set _idleTarget++>><</if>> <<if $clinic>><<set _idleTarget++>><</if>> <<if $cellblock>><<set _idleTarget++>><</if>> diff --git a/src/uncategorized/saChoosesOwnJob.tw b/src/uncategorized/saChoosesOwnJob.tw index d26842c7ca2f10f4b54a855edd5970a415e4713f..2bff9cda366ce3219aac9db640840c5063584442 100644 --- a/src/uncategorized/saChoosesOwnJob.tw +++ b/src/uncategorized/saChoosesOwnJob.tw @@ -50,6 +50,10 @@ <<= assignJob($slaves[$i], "be a servant")>> <</if>> + <<elseif ($universalRulesAssignsSelfFacility == 1) && (($slaves[$i].devotion < 45) || ($slaves[$i].trust < 45) || ($slaves[$i].sexualQuirk == "caring"))>> + <<set $slaves[$i].choosesOwnAssignmentText += " enjoys taking care of infants, so $he decides to work in $nurseryName.">> + <<= assignJob($slaves[$i], "work as a nanny")>> + <<elseif ($slaves[$i].relationship == -1)>> <<set $slaves[$i].choosesOwnAssignmentText += " relies on promiscuity to fulfill $his emotional needs,">> <<if ($cash < 10000)>> diff --git a/src/uncategorized/sellSlave.tw b/src/uncategorized/sellSlave.tw index 4efe0513acdffcf4a6ffd73ebe1ee766432ac5aa..b6f7c9c640008180a5d3b47ee9d2d8d07f451a16 100644 --- a/src/uncategorized/sellSlave.tw +++ b/src/uncategorized/sellSlave.tw @@ -211,6 +211,8 @@ A reputable slave appraiser arrives promptly to inspect $him and certify $his qu $His background would help make $him a good Wardeness; that's valuable. <<elseif setup.attendantCareers.includes($activeSlave.career)>> $His background would help make $him a good Attendant; that's valuable. + <<elseif setup.matronCareers.includes($activeSlave.career)>> + $His background would help make $him a good Matron; that's valuable. <<elseif setup.schoolteacherCareers.includes($activeSlave.career)>> $His background would help make $him a good Schoolteacher; that's valuable. <<elseif setup.stewardessCareers.includes($activeSlave.career)>> @@ -275,6 +277,9 @@ A reputable slave appraiser arrives promptly to inspect $him and certify $his qu <<if ($activeSlave.skillAT >= $masteredXP)>> <<set _careers.push("Attendant")>> <</if>> +<<if ($activeSlave.skillMT >= $masteredXP)>> + <<set _careers.push("Matron")>> +<</if>> <<if ($activeSlave.skillST >= $masteredXP)>> <<set _careers.push("Stewardess")>> <</if>> diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw index f4a37d17e04d37f1aafb762abbaaff2ff4bd02f3..e22cd84fcd17c7c526b12bc3336873b9761b9cb1 100644 --- a/src/uncategorized/slaveAssignmentsReport.tw +++ b/src/uncategorized/slaveAssignmentsReport.tw @@ -250,6 +250,27 @@ <<if $Attendant == 0>> <<= removeJob($slaves[$i], "be the Attendant")>> <</if>> +<<case "be the Matron">> + <<set $Matron = $slaves[$i]>> + <<if $Matron.fetish == "mindbroken">> + ''__@@.pink;$Matron.slaveName@@__'' is mindbroken @@.yellow;and cannot serve as your Matron any more.@@<br> + <<set $Matron = 0>> + <<elseif $Matron.preg > 37 && $Matron.broodmother == 2>> + ''__@@.pink;$Matron.slaveName@@__'' spends so much time giving birth and laboring that @@.yellow;she cannot effectively serve as your Matron any longer@@. + <<set $Matron = 0>> + <<elseif !canWalk($Matron)>> + ''__@@.pink;$Matron.slaveName@@__'' is no longer independently mobile @@.yellow;and cannot serve as your Matron any more.@@<br> + <<set $Matron = 0>> + <<elseif !canHear($Matron)>> + ''__@@.pink;$Matron.slaveName@@__'' can no longer hear @@.yellow;and cannot serve as your Matron any more.@@<br> + <<set $Matron = 0>> + <<elseif !canSee($Matron)>> + ''__@@.pink;$Matron.slaveName@@__'' can no longer see @@.yellow;and cannot server as your Matron any more.@@<br> + <<set $Matron = 0>> + <</if>> + <<if $Matron == 0>> + <<= removeJob($slaves[$i], "be the Matron")>> + <</if>> <<case "be the Nurse">> <<set $Nurse = $slaves[$i]>> <<if $Nurse.fetish == "mindbroken">> @@ -528,6 +549,7 @@ ["Dairy Report", $dairyNameCaps, $dairy, $dairySlaves, $Milkmaid, "Milkmaid"], ["Schoolroom Report", $schoolroomNameCaps, $schoolroom, $schoolroomSlaves, $Schoolteacher, "Schoolteacher"], ["Spa Report", $spaNameCaps, $spa, $spaSlaves, $Attendant, "Attendant"], + ["Nursery Report", $nurseryNameCaps, $nursery, $nurserySlaves, $Matron, "Matron"], /** ["Lab Report"], "Research Lab", $researchLab.built, $researchLab.hired + $researchLab.menials, -1, -1], **/ ["Servants' Quarters Report", $servantsQuartersNameCaps, $servantsQuarters, $servantsQuartersSlaves, $Stewardess, "Stewardess"], ["Incubator Report", $incubatorNameCaps, $incubator, $incubatorSlaves, -1, -1], diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw index a1f4e002566d92a0f5e2e01d0f34bfa66f08bdd6..4667ea0bade1ce89da06df6ba0c146af306828c7 100644 --- a/src/uncategorized/slaveInteract.tw +++ b/src/uncategorized/slaveInteract.tw @@ -1,4 +1,4 @@ -:: Slave Interact [nobr] +:: Slave Interact [nobr] <<if $cheatMode == 1>> <center>//[[Cheat Edit Slave|MOD_Edit Slave Cheat][$cheater = 1]] | [[Cheat Edit Slave Alternative|MOD_Edit Slave Cheat New][$cheater = 1]]//</center> @@ -20,6 +20,8 @@ <<set $returnTo = "Dairy">> <<case "rest in the spa" "be the Attendant">> <<set $returnTo = "Spa">> +<<case "work as a nanny" "be the Matron">> + <<set $returnTo = "Nursery">> <<case "learn in the schoolroom" "be the Schoolteacher">> <<set $returnTo = "Schoolroom">> <<case "work as a servant" "be the Stewardess">> @@ -475,6 +477,8 @@ //$He is the Nurse and is not available for other work// <<case "be the Attendant">> //$He is the Attendant of the spa and is not available for other work// + <<case "be the Matron">> + //$He is the Matron of the nursery and is not available for other work// <<case "be the Schoolteacher">> //$He is the school teacher and is not available for other work// <<case "be your Concubine">> diff --git a/src/uncategorized/slaveSummary.tw b/src/uncategorized/slaveSummary.tw index f0ed7f0edfe5f6ca1ccb89074a631270f0228bd4..1ba4e6976b03d09d96feaa7c6772678e393347e6 100644 --- a/src/uncategorized/slaveSummary.tw +++ b/src/uncategorized/slaveSummary.tw @@ -16,6 +16,11 @@ || ($Flag == 1 && s.assignment == "rest in the spa") || ($Flag != 0 && $Flag != 1 && s.ID == $Attendant.ID))), "Attendant Select": s => (s.assignmentVisible == 1 && s.fuckdoll == 0 && s.devotion > 50 && canWalk(s)), + "Nursery": s => (s.assignmentVisible == 1 && s.fuckdoll <= 0 && s.devotion > 20 || slave.trust > 20 && ( + ($Flag == 0 && s.assignment != "work as a nanny") + || ($Flag == 1 && s.assignment == "work as a nanny") + || ($Flag != 0 && $Flag != 1 && s.ID == $Attendant.ID))), + "Matron Select": s => (s.assignmentVisible == 1 && s.fuckdoll == 0 && s.devotion > 50 && canWalk(s)), "Brothel": s => (s.assignmentVisible == 1 && s.fuckdoll <= 0 && ( ($Flag == 0 && s.assignment != "work in the brothel") || ($Flag == 1 && s.assignment == "work in the brothel") @@ -775,6 +780,20 @@ will <<if setup.attendantCareers.includes(_Slave.career) || (_Slave.skillAT >= $masteredXP)>> <br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>> <</if>>@@.lime;Has applicable career experience.@@ <</if>> +<<case "Nursery">> + <br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>> <</if>> + <<if $Flag == 0>> + [[Send her to the Nursery|Assign][$i = _ssi]] + <<elseif $Flag == 1>> + [[Remove her from the Nursery|Retrieve][$i = _ssi]] + <<else>> + [[Change or remove Matron|Matron Select]] + <<break>> + <</if>> +<<case "Matron Select">> + <<if setup.attendantCareers.includes(_Slave.career) || (_Slave.skillAT >= $masteredXP)>> + <br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>> <</if>>@@.lime;Has applicable career experience.@@ + <</if>> <<case "Brothel">> <br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>> <</if>> <<if $Flag == 0>> diff --git a/src/uncategorized/storyCaption.tw b/src/uncategorized/storyCaption.tw index 8974f0fc614687cb7f5f2e1f58eb5931c828f8f6..fa7dd4207470e9411c64ba36ed11c25459b5a62f 100644 --- a/src/uncategorized/storyCaption.tw +++ b/src/uncategorized/storyCaption.tw @@ -465,6 +465,14 @@ ($spaSlaves/$spa<<if $Attendant>>, L<</if>>) <</if>> <</if>> + <<if ($nursery)>> + <br> <<link "$nurseryNameCaps""Nursery">><</link>> + <<if $abbreviateSidebar == 2>> + ($nurseryBabies babies, $nurserySlaves/$nursery <<if $nurserySlaves != 1>>nannies<<else>>nanny<</if>><<if $Matron>>, attendant<</if>>) + <<else>> + ($nurseryBabies, $nurserySlaves/$nursery<<if $Matron>>, L<</if>>) + <</if>> + <</if>> <<if ($clinic)>> <br> <<link "$clinicNameCaps""Clinic">><</link>> <<if $abbreviateSidebar == 2>> diff --git a/src/utility/assayWidgets.tw b/src/utility/assayWidgets.tw index 2fcafeb8a6a449846cd08bea42189da8dc558274..8e80fc8ca535bf155107dd809fd5f4a71967bec1 100644 --- a/src/utility/assayWidgets.tw +++ b/src/utility/assayWidgets.tw @@ -1461,6 +1461,8 @@ <<set _slaveMultiplier += 0.1>> <<elseif setup.attendantCareers.includes($args[0].career)>> <<set _slaveMultiplier += 0.1>> + <<elseif setup.matronCareers.include($args[0].career)>> + <<set _slaveMultiplier += 0.1>> <<elseif setup.schoolteacherCareers.includes($args[0].career)>> <<set _slaveMultiplier += 0.1>> <<elseif setup.stewardessCareers.includes($args[0].career)>> @@ -1509,6 +1511,9 @@ <<if !setup.attendantCareers.includes($activeSlave.career) && $activeSlave.skillAT >= $masteredXP>> <<set _slaveMultiplier += 0.1>> <</if>> +<<if !setup.matronCareers.includes($activeSlave.career) && $activeSlave.skillMT >= $masteredXP>> + <<set _slaveMultiplier += 0.1>> +<</if>> <<if !setup.schoolteacherCareers.includes($activeSlave.career) && $activeSlave.skillTE >= $masteredXP>> <<set _slaveMultiplier += 0.1>> <</if>> diff --git a/src/utility/descriptionWidgetsStyle.tw b/src/utility/descriptionWidgetsStyle.tw index 78c458701eaa89170c079a2f78837f896caa8afd..a88443618fc013426023e671e1e2f5e140691ca4 100644 --- a/src/utility/descriptionWidgetsStyle.tw +++ b/src/utility/descriptionWidgetsStyle.tw @@ -607,7 +607,7 @@ $activeSlave.slaveName is $His uniform is pinned with the <<if ($activeSlave.ID == $Bodyguard.ID) || ($activeSlave.ID == $HeadGirl.ID) || ($activeSlave.ID == $Recruiter.ID) || ($activeSlave.ID == $Concubine.ID)>> golden whip and manacles insignia of a senior slave officer, - <<elseif ($activeSlave.ID == $Madam.ID) || ($activeSlave.ID == $Nurse.ID) || ($activeSlave.ID == $Attendant.ID) || ($activeSlave.ID == $DJ.ID) || ($activeSlave.ID == $Milkmaid.ID) || ($activeSlave.ID == $Stewardess.ID) || ($activeSlave.ID == $Schoolteacher.ID) || ($activeSlave.ID == $Wardeness.ID) || ($activeSlave.ID == $Collectrix.ID)>> + <<elseif ($activeSlave.ID == $Madam.ID) || ($activeSlave.ID == $Nurse.ID) || ($activeSlave.ID == $Attendant.ID) || ($activeSlave.ID == $Matron.ID) || ($activeSlave.ID == $DJ.ID) || ($activeSlave.ID == $Milkmaid.ID) || ($activeSlave.ID == $Stewardess.ID) || ($activeSlave.ID == $Schoolteacher.ID) || ($activeSlave.ID == $Wardeness.ID) || ($activeSlave.ID == $Collectrix.ID)>> golden manacles insignia of a junior slave officer, <<elseif ($activeSlave.combatSkill > 0) && ($activeSlave.amp == -4)>> silver spear and manacles insignia of an augmented slave soldier, @@ -629,7 +629,7 @@ $activeSlave.slaveName is $His uniform is pinned with the <<if ($activeSlave.ID == $Bodyguard.ID) || ($activeSlave.ID == $HeadGirl.ID) || ($activeSlave.ID == $Recruiter.ID) || ($activeSlave.ID == $Concubine.ID)>> golden whip and manacles insignia of a senior slave officer, - <<elseif ($activeSlave.ID == $Madam.ID) || ($activeSlave.ID == $Nurse.ID) || ($activeSlave.ID == $Attendant.ID) || ($activeSlave.ID == $DJ.ID) || ($activeSlave.ID == $Milkmaid.ID) || ($activeSlave.ID == $Stewardess.ID) || ($activeSlave.ID == $Schoolteacher.ID) || ($activeSlave.ID == $Wardeness.ID) || ($activeSlave.ID == $Collectrix.ID)>> + <<elseif ($activeSlave.ID == $Madam.ID) || ($activeSlave.ID == $Nurse.ID) || ($activeSlave.ID == $Attendant.ID) || ($activeSlave.ID == $Matron.ID) || ($activeSlave.ID == $DJ.ID) || ($activeSlave.ID == $Milkmaid.ID) || ($activeSlave.ID == $Stewardess.ID) || ($activeSlave.ID == $Schoolteacher.ID) || ($activeSlave.ID == $Wardeness.ID) || ($activeSlave.ID == $Collectrix.ID)>> golden manacles insignia of a junior slave officer, <<elseif ($activeSlave.combatSkill > 0) && ($activeSlave.amp == -4)>> silver spear and manacles insignia of an augmented slave soldier, @@ -651,7 +651,7 @@ $activeSlave.slaveName is $His uniform is pinned with the <<if ($activeSlave.ID == $Bodyguard.ID) || ($activeSlave.ID == $HeadGirl.ID) || ($activeSlave.ID == $Recruiter.ID) || ($activeSlave.ID == $Concubine.ID)>> golden whip and manacles insignia of a senior slave officer, - <<elseif ($activeSlave.ID == $Madam.ID) || ($activeSlave.ID == $Nurse.ID) || ($activeSlave.ID == $Attendant.ID) || ($activeSlave.ID == $DJ.ID) || ($activeSlave.ID == $Milkmaid.ID) || ($activeSlave.ID == $Stewardess.ID) || ($activeSlave.ID == $Schoolteacher.ID) || ($activeSlave.ID == $Wardeness.ID) || ($activeSlave.ID == $Collectrix.ID)>> + <<elseif ($activeSlave.ID == $Madam.ID) || ($activeSlave.ID == $Nurse.ID) || ($activeSlave.ID == $Attendant.ID) || ($activeSlave.ID == $Matron.ID) || ($activeSlave.ID == $DJ.ID) || ($activeSlave.ID == $Milkmaid.ID) || ($activeSlave.ID == $Stewardess.ID) || ($activeSlave.ID == $Schoolteacher.ID) || ($activeSlave.ID == $Wardeness.ID) || ($activeSlave.ID == $Collectrix.ID)>> golden manacles insignia of a junior slave officer, <<elseif ($activeSlave.combatSkill > 0) && ($activeSlave.amp == -4)>> silver spear and manacles insignia of an augmented slave soldier, @@ -673,7 +673,7 @@ $activeSlave.slaveName is $His uniform is pinned with the <<if ($activeSlave.ID == $Bodyguard.ID) || ($activeSlave.ID == $HeadGirl.ID) || ($activeSlave.ID == $Recruiter.ID) || ($activeSlave.ID == $Concubine.ID)>> golden whip and manacles insignia of a senior slave officer, - <<elseif ($activeSlave.ID == $Madam.ID) || ($activeSlave.ID == $Nurse.ID) || ($activeSlave.ID == $Attendant.ID) || ($activeSlave.ID == $DJ.ID) || ($activeSlave.ID == $Milkmaid.ID) || ($activeSlave.ID == $Stewardess.ID) || ($activeSlave.ID == $Schoolteacher.ID) || ($activeSlave.ID == $Wardeness.ID) || ($activeSlave.ID == $Collectrix.ID)>> + <<elseif ($activeSlave.ID == $Madam.ID) || ($activeSlave.ID == $Nurse.ID) || ($activeSlave.ID == $Attendant.ID) || ($activeSlave.ID == $Matron.ID) || ($activeSlave.ID == $DJ.ID) || ($activeSlave.ID == $Milkmaid.ID) || ($activeSlave.ID == $Stewardess.ID) || ($activeSlave.ID == $Schoolteacher.ID) || ($activeSlave.ID == $Wardeness.ID) || ($activeSlave.ID == $Collectrix.ID)>> golden manacles insignia of a junior slave officer, <<elseif ($activeSlave.combatSkill > 0) && ($activeSlave.amp == -4)>> silver spear and manacles insignia of an augmented slave soldier, diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw index fe4f3ab5ac7ff88204ece9705dd7186b5fea22ad..7329f043eb64a9056f8d84274737a3de0a05582a 100644 --- a/src/utility/miscWidgets.tw +++ b/src/utility/miscWidgets.tw @@ -822,6 +822,7 @@ This experience <<if $club > 0>><<run ValidateFacilityDecoration("clubDecoration")>><</if>> <<if $dairy > 0>><<run ValidateFacilityDecoration("dairyDecoration")>><</if>> <<if $spa > 0>><<run ValidateFacilityDecoration("spaDecoration")>><</if>> +<<if $nursery > 0>><<run ValidateFacilityDecoration("nurseryDecoration")>><</if>> <<if $clinic > 0>><<run ValidateFacilityDecoration("clinicDecoration")>><</if>> <<if $schoolroom > 0>><<run ValidateFacilityDecoration("schoolroomDecoration")>><</if>> <<if $cellblock > 0>><<run ValidateFacilityDecoration("cellblockDecoration")>><</if>> diff --git a/src/utility/slaveCreationWidgets.tw b/src/utility/slaveCreationWidgets.tw index 072fc7bd91fa3686a3c9f4b8014f950813931ca9..aa7098b5dff270449ab9e0eae10c20f24c3262aa 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, 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, 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, origSkin: "white", vasectomy: 0, haircuts: 0, newGamePlus: 0, skillHG: 0, skillRC: 0, skillBG: 0, skillMD: 0, skillDJ: 0, skillNU: 0, skillTE: 0, skillAT: 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}>> + <<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, 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, 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, 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}>> <</widget>> /% @@ -4706,6 +4706,10 @@ <<set $activeSlave.devotion = 90, $activeSlave.trust = 90, $activeSlave.health = random(80,95), $activeSlave.intelligenceImplant = 1, $activeSlave.intelligence = either(1,1,1,2,2,3), $activeSlave.fetish = "submissive", $activeSlave.fetishStrength = 100, $activeSlave.eyes = either(-2, 1, 1), $activeSlave.preg = 0, $activeSlave.face = random(60,90), $activeSlave.career = either("a counselor", "a masseuse", "a therapist")>> <<set $activeSlave.actualAge = random(26,$retirementAge-3)>> <<set $activeSlave.physicalAge = $activeSlave.actualAge, $activeSlave.visualAge = $activeSlave.actualAge, $activeSlave.ovaryAge = $activeSlave.actualAge>> + <<case "Matron">> + <<set $activeSlave.devotion = 90, $activeSlave.trust = 90, $activeSlave.health = random(80,95), $activeSlave.intelligenceImplant = 1, $activeSlave.intelligence = either(1,1,1,2,2,3), $activeSlave.sexualQuirk = "caring", $activeSlave.fetishStrength = 100, $activeSlave.eyes = 1, $activeSlave.preg = 0, $activeSlave.face = random(60,90), $activeSlave.career = either("a babysitter", "a practitioner", "a caregiver")>> + <<set $activeSlave.actualAge = random(32,$retirementAge-3)>> + <<set $activeSlave.physicalAge = $activeSlave.actualAge, $activeSlave.visualAge = $activeSlave.actualAge, $activeSlave.ovaryAge = $activeSlave.actualAge>> <<case "Stewardess">> <<set $activeSlave.devotion = 80, $activeSlave.trust = 80, $activeSlave.health = random(80,95), $activeSlave.energy = random(70,90), $activeSlave.intelligenceImplant = 1, $activeSlave.intelligence = either(1,1,1,2,2,3), $activeSlave.fetish = "dom", $activeSlave.fetishStrength = 100, $activeSlave.career = either("a barista", "a bartender", "a caregiver", "a charity worker", "a professional bartender", "a secretary", "a wedding planner", "an air hostess", "an estate agent", "an investor", "an office worker")>> <<case "Milkmaid">>