diff --git a/devNotes/VersionChangeLog-Premod+LoliMod.txt b/devNotes/VersionChangeLog-Premod+LoliMod.txt index 90dabdea2ee475530515c13b7f04c61c6648789f..02546f2d6cbe3f1f65a1e9d312cb7dc834cef88f 100644 --- a/devNotes/VersionChangeLog-Premod+LoliMod.txt +++ b/devNotes/VersionChangeLog-Premod+LoliMod.txt @@ -2,6 +2,12 @@ 0.10.7.1-0.7.x +9/15/2018 + + 30 + -added solid slave food and hole preference options to the RA + -fixes + 9/14/2018 29 diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt index 392b9ebeaa3091cca9e4f72068fe0e6e0de88b9a..dc7a4059f5be2eb605cf236629cbd62c294d9954 100644 --- a/devNotes/twine JS.txt +++ b/devNotes/twine JS.txt @@ -2661,6 +2661,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", @@ -2720,6 +2721,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", @@ -12316,8 +12318,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); @@ -13969,6 +13974,39 @@ 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) { @@ -14001,6 +14039,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")) { if ((rule.teeth == "universal")) { @@ -15520,6 +15570,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()); } @@ -15533,6 +15586,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()); @@ -16329,6 +16383,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 = [ @@ -16418,6 +16485,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/js/DefaultRules.tw b/src/js/DefaultRules.tw index df465766130d263388c184fe610c2ac7599e6db5..64fb8263a958a224a36f4ef26ac320ae260e3cb1 100644 --- a/src/js/DefaultRules.tw +++ b/src/js/DefaultRules.tw @@ -1704,7 +1704,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 ;