From 16938a8a94aabbbeaa3beee5905d3d7bafc0d425 Mon Sep 17 00:00:00 2001 From: Pregmodder <pregmodder@gmail.com> Date: Sat, 15 Sep 2018 03:10:53 -0400 Subject: [PATCH] fix and RA additions --- src/js/DefaultRules.tw | 49 ++++++++++++++++++++++++++ src/js/rulesAssistant.tw | 2 ++ src/js/rulesAssistantOptions.tw | 36 ++++++++++++++++++- src/uncategorized/saLongTermEffects.tw | 4 +-- src/uncategorized/slaveInteract.tw | 2 +- 5 files changed, 89 insertions(+), 4 deletions(-) diff --git a/src/js/DefaultRules.tw b/src/js/DefaultRules.tw index bbb761d9ae9..df465766130 100644 --- a/src/js/DefaultRules.tw +++ b/src/js/DefaultRules.tw @@ -46,8 +46,11 @@ 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); @@ -1699,6 +1702,40 @@ 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) { @@ -1730,6 +1767,18 @@ 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")) { diff --git a/src/js/rulesAssistant.tw b/src/js/rulesAssistant.tw index 7fefeb20aed..1c74b120d59 100644 --- a/src/js/rulesAssistant.tw +++ b/src/js/rulesAssistant.tw @@ -186,6 +186,7 @@ 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", @@ -245,6 +246,7 @@ 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", diff --git a/src/js/rulesAssistantOptions.tw b/src/js/rulesAssistantOptions.tw index 26dc3e5bfdd..a60abec4881 100644 --- a/src/js/rulesAssistantOptions.tw +++ b/src/js/rulesAssistantOptions.tw @@ -939,6 +939,9 @@ window.rulesAssistantOptions = (function() { 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()); } @@ -952,6 +955,7 @@ 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()); @@ -1736,7 +1740,7 @@ window.rulesAssistantOptions = (function() { current_rule.set.dietMilk = value.milk; }; } - + value2string(cum, milk) { return `cum: ${cum}, milk: ${milk}`; } @@ -1748,6 +1752,19 @@ 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 = [ @@ -1837,6 +1854,23 @@ 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 = [ diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw index 64ad7df109f..a954d69ee07 100644 --- a/src/uncategorized/saLongTermEffects.tw +++ b/src/uncategorized/saLongTermEffects.tw @@ -6183,8 +6183,8 @@ <</if>> /* CLOSES DICK CHECK */ -<<if $slaves[$i].balls == 0>> - <<if $slaves[$i].ovaries == 0>> +<<if $slaves[$i].balls == 0 || $slaves[$i].ballType == "sterile">> + <<if $slaves[$i].ovaries == 0 && $slaves[$i].mpreg == 0>> <<if $slaves[$i].energy > 5>> <<if $slaves[$i].energy <= 95>> <<if ($slaves[$i].dick == 0)>> diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw index 6ba816e235c..f4010e02639 100644 --- a/src/uncategorized/slaveInteract.tw +++ b/src/uncategorized/slaveInteract.tw @@ -406,7 +406,7 @@ <<= $defaultRules.filter(x => ruleApplied($activeSlave, x)).map(x => `<li>Rule "${x.name}" applied</li>`).join(" ") >> </ul> <</if>> - <<link "//Apply rules//">> + | <<link "//Apply rules//">> <<silently>> <<run DefaultRules($activeSlave)>> <</silently>> -- GitLab