diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt index f275a36d00cf2ee857c30db1596f8e695d03a5cc..e2eaa055ec93015683e7eef1e5010b7c31cb271a 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", @@ -2721,7 +2696,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", @@ -2772,7 +2746,6 @@ window.emptyDefaultRule = function emptyDefaultRule() { label: "no default setting", removeLabel: "no default setting", skinColor: "no default setting", - inflationType: "no default setting", } }; return rule; @@ -3693,167 +3666,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; @@ -8805,10 +8617,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; @@ -12089,16 +11897,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){ @@ -12319,7 +12117,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); @@ -12334,11 +12131,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); @@ -13580,7 +13374,7 @@ window.DefaultRules = (function() { break; case "appetite suppressors": - if (!(slave.weight <= -95)) + if (!(slave.weight > -95)) flag = false; break; @@ -13607,46 +13401,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") { @@ -14030,39 +13784,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) { @@ -14095,18 +13816,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")) { @@ -14655,7 +14364,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.`; } @@ -15623,15 +15331,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()); } @@ -15645,7 +15347,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()); @@ -16350,12 +16051,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"]); @@ -16373,26 +16071,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 = [ @@ -16462,19 +16140,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 = [ @@ -16564,23 +16229,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 = [ @@ -16812,7 +16460,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"] @@ -17795,7 +17442,6 @@ window.rulesAssistantOptions = (function() { class CosmeticSurgeryList extends List { constructor() { const items = [ - ["no default setting"], ["none", 0], ["subtle", 1], ["invasive", 2], @@ -18592,7 +18238,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) { @@ -18648,7 +18294,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) { @@ -18758,7 +18404,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); } } @@ -18771,7 +18417,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); } } @@ -18811,7 +18457,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); } } @@ -18879,7 +18525,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); } } @@ -18892,7 +18538,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); } } @@ -18903,14 +18549,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); } } @@ -18939,14 +18585,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); } } @@ -21105,10 +20751,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 += " "; } @@ -21178,10 +20824,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 += " "; } @@ -21496,10 +21138,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 += " "; } @@ -22886,7 +22524,6 @@ window.SlaveSummaryUncached = (function(){ r += ` & lover`; handled = 1; } - r += " "; } if (slave.daughters === 1) { let _ssj = V.slaves.findIndex(function(s) { @@ -24115,13 +23752,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": @@ -24189,9 +23826,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) { @@ -24209,6 +23843,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) { @@ -25728,7 +25365,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: @@ -27304,7 +26941,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..cb52439b55919bfbc13baff3d18ec9242ccb13ae 100644 --- a/src/init/setupVars.tw +++ b/src/init/setupVars.tw @@ -2023,7 +2023,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 9c8e822f156cbb3fb5536cb1f46741ef206e635d..6002c389cd7b14ea23b78d0820bd503b70e4d10b 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.health < 20) || (slave.trust < 60) || (slave.devotion <= 60) || (slave.fetish == "mindbroken") && (slave.devotion >= -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..edcd76ca63131740379c63f0c6e7434780daa144 100644 --- a/src/js/assignJS.tw +++ b/src/js/assignJS.tw @@ -204,8 +204,29 @@ 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) { + case "Chattel Religionist": + case "Chinese Revivalist": + slave.livingRules = "normal"; + break; + case "Degradationist": + slave.livingRules = "spare"; + break; + default: + slave.livingRules = "luxurious"; + break; + } + break; case "be the attendant": + case "be the matron": case "be the dj": case "be the madam": case "be the milkmaid": @@ -315,6 +336,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 39362e97c8abd9bf57ff06b7f38d400089f6de38..f0b07f145ee1ee21b3c6973b7b83054c13d92365 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 e628b7637722a9ca14e438ef004f9c5d062ad12d..1606005bfcec09322bf395151aadb9fc4341b6f6 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..8e4daec01edec658e41a92be1807399c95b87bbc 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 babies 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..1dc57989cbf9531823c46c191e37747414219e90 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 babies 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..8c3833ebe7c73ada7bf6583ec9bd49af69ecfe9d 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 babies in $nurseryName. <</switch>> <</if>> diff --git a/src/npc/descriptions/fVagina.tw b/src/npc/descriptions/fVagina.tw index 5f92da0702760febf498c1b945759e5599b06e6a..9ae7e0e86ea1671bf924402e840a2a1d344c7e9b 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 babies 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 cc035c32fc47dbb7e47d89d03216983e0544da8b..e2425eb1ea19aabe53dfbfb53416f10d48a0c830 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..4a63cc74b0e8ed556f0fff0a780cd26e60578a43 --- /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 neglected children trying to find comfort in their burlap coverings echo the halls. +<<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/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..bfb49c01479417c2dadc2a12e292cd75f7a56251 100644 --- a/src/uncategorized/managePenthouse.tw +++ b/src/uncategorized/managePenthouse.tw @@ -74,6 +74,15 @@ __Penthouse Facilities__ <br> +<<if $nursery == 0>> + [[Build a nursery to raise chilren from birth|Manage Penthouse][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $nursery = 5, $PC.engineering += 1]] + //Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>// +<<else>> + The penthouse has a nursery built where infants can be brought up. +<</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..f171bccc3864da15bd9404fce52ec9373956f8ea 100644 --- a/src/uncategorized/slaveAssignmentsReport.tw +++ b/src/uncategorized/slaveAssignmentsReport.tw @@ -250,6 +250,24 @@ <<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>> + <</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 +546,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 95e81af841eb9fdcc71d6de168139662fc67c500..175069156a1c8f41f1e80ee9679e4a1dfdf296aa 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">> @@ -472,6 +474,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..6f88f83133f1bfda0d359990d56166a6bc1fcaa9 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 && ( + ($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..94b362425f7ced9db1089e8efd447eecbceea2c3 100644 --- a/src/utility/slaveCreationWidgets.tw +++ b/src/utility/slaveCreationWidgets.tw @@ -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 = either(-2, 1, 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">>