From 91a14e29d737c6e7571ed60d7939845aad20d243 Mon Sep 17 00:00:00 2001 From: Vasileios Pasialiokis <whiterocket@outlook.com> Date: Mon, 2 Apr 2018 19:34:06 +0300 Subject: [PATCH] fix some bugs --- src/js/DefaultRules.tw | 108 ++++++++++++++-------------- src/js/assayJS.tw | 2 +- src/js/rulesAssistant.tw | 25 +++++-- src/js/rulesAssistantOptions.tw | 21 +++--- src/uncategorized/initRules.tw | 42 +++++------ src/uncategorized/rulesAssistant.tw | 15 ++-- 6 files changed, 115 insertions(+), 98 deletions(-) diff --git a/src/js/DefaultRules.tw b/src/js/DefaultRules.tw index 6627ed3f8f1..81ba6af24f2 100644 --- a/src/js/DefaultRules.tw +++ b/src/js/DefaultRules.tw @@ -7,12 +7,12 @@ window.DefaultRules = (function() { let r = "" function DefaultRules(slave) { - let V = State.variables - let combinedRule = MergeRules(slave) + V = State.variables + let rule = MergeRules(slave) - if (Object.keys(combinedRule).length === 0) return r // no rules apply + if (Object.keys(rule).length === 0) return r // no rules apply - AssignJobToSlave(slave, combinedRule) + AssignJobToSlave(slave, rule) if(slave.fuckdoll === 0) { ProcessClothing(slave, rule) ProcessCollar(slave, rule) @@ -23,7 +23,7 @@ window.DefaultRules = (function() { ProcessShoes(slave, rule) ProcessBellyAccessories(slave, rule) } - ProcessBellyImplant(slave, combinedRule) + ProcessBellyImplant(slave, rule) if (isFertile(slave)) ProcessFertilityDrugs(slave, rule) ProcessAssetGrowthDrugs(slave, rule) @@ -57,7 +57,7 @@ window.DefaultRules = (function() { // merge all rules applying on a slave into one big rule let combinedRule = {} V.defaultRules.forEach(rule => { - rule = clone(rule) + rule = Object.assign({}, rule.set) // skip inapplicable rules if (!ruleApplied(slave, rule)) return @@ -910,54 +910,54 @@ window.DefaultRules = (function() { if ((slave.drugs == "super fertility drugs" || slave.drugs == "fertility drugs") && isFertile(slave)) { r += `<br>slave.slaveName is on slave.drugs and will not be considered for drug enhancement until that regime is complete.` return - } else if ((rule.growth.boobs == "no default setting" && rule.growth.butt == "no default setting" && rule.growth.lips == "no default setting" && rule.growth.dick == "no default setting" && rule.growth.dick == "no default setting" && rule.growth.balls == "no default setting")) { + } else if ((rule.growth_boobs == "no default setting" && rule.growth_butt == "no default setting" && rule.growth_lips == "no default setting" && rule.growth_dick == "no default setting" && rule.growth_dick == "no default setting" && rule.growth_balls == "no default setting")) { return } if (slave.assignmentVisible) { // More resource intensive version with prioritizing. Possible to give this a toggle rather than basing it on visibility. let _priorities = [] - if (rule.growth.boobs != "no default setting") { + if (rule.growth_boobs != "no default setting") { let _priority - if (slave.boobs < rule.growth.boobs) { - _priority = {drug: "breast injections", weight: (rule.growth.boobs-slave.boobs)/rule.growth.boobs} + if (slave.boobs < rule.growth_boobs) { + _priority = {drug: "breast injections", weight: (rule.growth_boobs-slave.boobs)/rule.growth_boobs} _priorities.push(_priority) - } else if ((slave.boobs > rule.growth.boobs+200) && slave.weight < 100 && (V.arcologies[0].FSSlimnessEnthusiastResearch == 1)) { - _priority = {drug: "breast redistributors", weight: (1+((slave.boobs-slave.boobsImplant-rule.growth.boobs)/rule.growth.boobs))}, _priorities.push(_priority) + } else if ((slave.boobs > rule.growth_boobs+200) && slave.weight < 100 && (V.arcologies[0].FSSlimnessEnthusiastResearch == 1)) { + _priority = {drug: "breast redistributors", weight: (1+((slave.boobs-slave.boobsImplant-rule.growth_boobs)/rule.growth_boobs))}, _priorities.push(_priority) } } - if (rule.growth.butt != "no default setting") { + if (rule.growth_butt != "no default setting") { let _priority - if (slave.butt < rule.growth.butt) { - _priority = {drug: "butt injections", weight: (rule.growth.butt-slave.butt)/rule.growth.butt} + if (slave.butt < rule.growth_butt) { + _priority = {drug: "butt injections", weight: (rule.growth_butt-slave.butt)/rule.growth_butt} _priorities.push(_priority) - } else if ((Math.trunc(slave.butt) > rule.growth.butt) && slave.weight < 100 && (V.arcologies[0].FSSlimnessEnthusiastResearch == 1)) { - _priority = {drug: "butt redistributors", weight: (1+((slave.butt-slave.buttImplant-rule.growth.butt)/rule.growth.butt))}, _priorities.push(_priority) + } else if ((Math.trunc(slave.butt) > rule.growth_butt) && slave.weight < 100 && (V.arcologies[0].FSSlimnessEnthusiastResearch == 1)) { + _priority = {drug: "butt redistributors", weight: (1+((slave.butt-slave.buttImplant-rule.growth_butt)/rule.growth_butt))}, _priorities.push(_priority) } } - if (rule.growth.lips != "no default setting") { + if (rule.growth_lips != "no default setting") { let _priority - if (slave.lips < rule.growth.lips) { - _priority = {drug: "lip injections", weight: (rule.growth.lips-slave.lips)/rule.growth.lips} + if (slave.lips < rule.growth_lips) { + _priority = {drug: "lip injections", weight: (rule.growth_lips-slave.lips)/rule.growth_lips} _priorities.push(_priority) - } else if ((slave.lips > rule.growth.lips) && (V.arcologies[0].FSSlimnessEnthusiastResearch == 1)) { - _priority = {drug: "lip atrophiers", weight: (1+((slave.lips-slave.lipsImplant-rule.growth.lips)/rule.growth.lips))}, _priorities.push(_priority) + } else if ((slave.lips > rule.growth_lips) && (V.arcologies[0].FSSlimnessEnthusiastResearch == 1)) { + _priority = {drug: "lip atrophiers", weight: (1+((slave.lips-slave.lipsImplant-rule.growth_lips)/rule.growth_lips))}, _priorities.push(_priority) } } - if (rule.growth.dick != "no default setting" && slave.dick) { + if (rule.growth_dick != "no default setting" && slave.dick) { let _priority - if (slave.dick < rule.growth.dick) { - _priority = {drug: "penis enhancement", weight: (rule.growth.dick-slave.dick)/rule.growth.dick} + if (slave.dick < rule.growth_dick) { + _priority = {drug: "penis enhancement", weight: (rule.growth_dick-slave.dick)/rule.growth_dick} _priorities.push(_priority) - } else if ((slave.dick > rule.growth.dick) && (V.arcologies[0].FSSlimnessEnthusiastResearch == 1)) { - _priority = {drug: "penis atrophiers", weight: (1+((slave.dick-rule.growth.dick)/rule.growth.dick))}, _priorities.push(_priority) + } else if ((slave.dick > rule.growth_dick) && (V.arcologies[0].FSSlimnessEnthusiastResearch == 1)) { + _priority = {drug: "penis atrophiers", weight: (1+((slave.dick-rule.growth_dick)/rule.growth_dick))}, _priorities.push(_priority) } } - if (rule.growth.balls != "no default setting" && slave.balls) { + if (rule.growth_balls != "no default setting" && slave.balls) { let _priority - if (slave.balls < rule.growth.balls) { - _priority = {drug: "testicle enhancement", weight: (rule.growth.balls-slave.balls)/rule.growth.balls} + if (slave.balls < rule.growth_balls) { + _priority = {drug: "testicle enhancement", weight: (rule.growth_balls-slave.balls)/rule.growth_balls} _priorities.push(_priority) - } else if ((slave.balls > rule.growth.balls) && (V.arcologies[0].FSSlimnessEnthusiastResearch == 1)) { - _priority = {drug: "testicle atrophiers", weight: (1+((slave.balls-rule.growth.balls)/rule.growth.balls))}, _priorities.push(_priority) + } else if ((slave.balls > rule.growth_balls) && (V.arcologies[0].FSSlimnessEnthusiastResearch == 1)) { + _priority = {drug: "testicle atrophiers", weight: (1+((slave.balls-rule.growth_balls)/rule.growth_balls))}, _priorities.push(_priority) } } if (_priorities.length > 1) { @@ -965,7 +965,7 @@ window.DefaultRules = (function() { if (slave.drugs != _priorities[0].drug) { slave.drugs = _priorities[0].drug r += `<br>${slave.slaveName} has been put on ` - if (rule.growth.intensity && slave.drugs != "lip injections" && slave.health > 0) { + if (rule.growth_intensity && slave.drugs != "lip injections" && slave.health > 0) { slave.drugs = "intensive " + slave.drugs r += `${slave.drugs}, since she's healthy enough to take them, and ` } else { @@ -981,7 +981,7 @@ window.DefaultRules = (function() { if (slave.drugs != _priorities[0].drug) { slave.drugs = _priorities[0].drug r += `<br>${slave.slaveName} has been put on ` - if (rule.growth.intensity && slave.drugs != "lip injections" && slave.health > 0) { + if (rule.growth_intensity && slave.drugs != "lip injections" && slave.health > 0) { slave.drugs = "intensive " + slave.drugs r += `${slave.drugs}, since she's healthy enough to take them, and ` } else @@ -1000,8 +1000,8 @@ window.DefaultRules = (function() { _hyper = "hyper " else _hyper = "" - if (rule.growth.boobs != "no default setting") { - if (slave.boobs < rule.growth.boobs) { + if (rule.growth_boobs != "no default setting") { + if (slave.boobs < rule.growth_boobs) { if (slave.drugs != _hyper + "breast injections") { slave.drugs = _hyper + "breast injections" r += `<br>${slave.slaveName} has been put on ${slave.drugs}.` @@ -1009,8 +1009,8 @@ window.DefaultRules = (function() { return } } - if (rule.growth.butt != "no default setting") { - if (slave.butt < rule.growth.butt) { + if (rule.growth_butt != "no default setting") { + if (slave.butt < rule.growth_butt) { if (slave.drugs != _hyper + "butt injections") { slave.drugs = _hyper + "butt injections" r += `<br>${slave.slaveName} has been put on ${slave.drugs}.` @@ -1018,8 +1018,8 @@ window.DefaultRules = (function() { return } } - if (rule.growth.lips != "no default setting") { - if (slave.lips < rule.growth.lips) { + if (rule.growth_lips != "no default setting") { + if (slave.lips < rule.growth_lips) { if (slave.drugs != "lip injections") { slave.drugs = "lip injections" r += `<br>${slave.slaveName} has been put on ${slave.drugs}.` @@ -1027,8 +1027,8 @@ window.DefaultRules = (function() { return } } - if (rule.growth.dick != "no default setting" && slave.dick) { - if (slave.dick < rule.growth.dick) { + if (rule.growth_dick != "no default setting" && slave.dick) { + if (slave.dick < rule.growth_dick) { if (slave.drugs != _hyper + "penis enhancement") { slave.drugs = _hyper + "penis enhancement" r += `<br>${slave.slaveName} has been put on ${slave.drugs}.` @@ -1036,8 +1036,8 @@ window.DefaultRules = (function() { return } } - if (rule.growth.balls != "no default setting" && slave.balls) { - if (slave.balls < rule.growth.balls) { + if (rule.growth_balls != "no default setting" && slave.balls) { + if (slave.balls < rule.growth_balls) { if (slave.drugs != _hyper + "testicle enhancement") { slave.drugs = _hyper + "testicle enhancement" r += `<br>${slave.slaveName} has been put on ${slave.drugs}.` @@ -1046,8 +1046,8 @@ window.DefaultRules = (function() { } } if (V.arcologies[0].FSSlimnessEnthusiastResearch == 1) { - if (rule.growth.boobs != "no default setting") { - if (slave.boobs-slave.boobsImplant > rule.growth.boobs+200 && slave.weight < 100) { + if (rule.growth_boobs != "no default setting") { + if (slave.boobs-slave.boobsImplant > rule.growth_boobs+200 && slave.weight < 100) { if (slave.drugs != "breast redistributors") { slave.drugs = "breast redistributors" r += `<br>${slave.slaveName} has been put on ${slave.drugs}.` @@ -1055,8 +1055,8 @@ window.DefaultRules = (function() { return } } - if (rule.growth.butt != "no default setting") { - if (Math.trunc(slave.butt-slave.buttImplant) > rule.growth.butt && slave.weight < 100) { + if (rule.growth_butt != "no default setting") { + if (Math.trunc(slave.butt-slave.buttImplant) > rule.growth_butt && slave.weight < 100) { if (slave.drugs != "butt redistributors") { slave.drugs = "butt redistributors" r += `<br>${slave.slaveName} has been put on ${slave.drugs}.` @@ -1064,8 +1064,8 @@ window.DefaultRules = (function() { return } } - if (rule.growth.lips != "no default setting") { - if (slave.lips-slave.lipsImplant > rule.growth.lips) { + if (rule.growth_lips != "no default setting") { + if (slave.lips-slave.lipsImplant > rule.growth_lips) { if (slave.drugs != "lip atrophiers") { slave.drugs = "lip atrophiers" r += `<br>${slave.slaveName} has been put on ${slave.drugs}.` @@ -1073,8 +1073,8 @@ window.DefaultRules = (function() { return } } - if (rule.growth.dick != "no default setting" && slave.dick) { - if (slave.dick > rule.growth.dick) { + if (rule.growth_dick != "no default setting" && slave.dick) { + if (slave.dick > rule.growth_dick) { if (slave.drugs != "penis atrophiers") { slave.drugs = "penis atrophiers" r += `<br>${slave.slaveName} has been put on ${slave.drugs}.` @@ -1082,8 +1082,8 @@ window.DefaultRules = (function() { return } } - if (rule.growth.balls != "no default setting" && slave.balls) { - if (slave.balls > rule.growth.balls) { + if (rule.growth_balls != "no default setting" && slave.balls) { + if (slave.balls > rule.growth_balls) { if (slave.drugs != "testicle atrophiers") { slave.drugs = "testicle atrophiers" r += `<br>${slave.slaveName} has been put on ${slave.drugs}.` diff --git a/src/js/assayJS.tw b/src/js/assayJS.tw index 3638873b6ef..103dc892014 100644 --- a/src/js/assayJS.tw +++ b/src/js/assayJS.tw @@ -229,6 +229,6 @@ window.isLeaderP = function isLeaderP(slave) { window.properTitle = function properTitle() { const PC = State.variables.PC if (PC.customTitle) return PC.customTitle; - else if (V.PC.title !== 0) return "Sir"; + else if (PC.title !== 0) return "Sir"; else return "Ma'am"; }; diff --git a/src/js/rulesAssistant.tw b/src/js/rulesAssistant.tw index 25481e8c743..9278e161f2c 100644 --- a/src/js/rulesAssistant.tw +++ b/src/js/rulesAssistant.tw @@ -422,13 +422,28 @@ window.printError = function(exprStr, error) { } */ +window.mergeRules = function mergeRules(rules) { + const combinedRule = {}; + rules.forEach(rule => { + // A rule overrides any preceding ones if, + // * there are no preceding ones, + // * or it sets autoBrand, + // * or it does not set autoBrand and is not "no default setting" + Object.keys(rule).forEach(key => { + const applies = (combinedRule[key] === undefined || + (key === "autoBrand" && rule[key]) || + (key !== "autoBrand" && rule[key] !== "no default setting")); + if (!applies) return + combinedRule[key] = rule[key] + }) + }) +} + // return if a rule is applied on a slave window.ruleApplied = function(slave, rule) { return slave.currentRules.includes(rule.ID); }; - - // checks if any rules apply on the slave, and applies them window.CheckAutoRulesActivate = function CheckAutoRulesActivate(slave) { const V = State.variables @@ -450,11 +465,10 @@ window.CheckAutoRulesActivate = function CheckAutoRulesActivate(slave) { // remove the RA rule from the slave window.RARemoveRule = function RARemoveRule(slave, rule) { let r = "" - const idx = slave.currentRules.indexOf( slave.currentRules.some((rule, i) => { if (rule.ID === rule) { slave.currentRules.splice(i, 1) - r += `<br><span class="tan">Rule ${rule.ID} (${rule.name}) no longer applies to {slave.slaveName}, who is assignmed to ${slave.assignment}</span>` + r += `<br><span class="tan">Rule ${rule.ID} (${rule.name}) no longer applies to ${slave.slaveName}, who is assignmed to ${slave.assignment}</span>` r += RAFacilityRemove(slave, rule.set) return true } else return false @@ -491,7 +505,7 @@ window.RAFacilityRemove = function RAFacilityRemove(slave, rule) { case "work in the dairy": if (slave.assignment === rule.setAssignment) { - r += `<br>${slave.slaveName} has been removed from ${V.dairyName} and has been assigned to $rule.removalAssignment}.` + r += `<br>${slave.slaveName} has been removed from ${V.dairyName} and has been assigned to ${rule.removalAssignment}.` assignJob(slave, rule.removalAssignment) } break; @@ -718,3 +732,4 @@ window.growAdvSelectorSlim = function(slave, rule) { return ret; } +*/ diff --git a/src/js/rulesAssistantOptions.tw b/src/js/rulesAssistantOptions.tw index 1da76e1cdbe..ef112e33fe6 100644 --- a/src/js/rulesAssistantOptions.tw +++ b/src/js/rulesAssistantOptions.tw @@ -4,13 +4,12 @@ // uses an object-oriented widget pattern // wrapped in a closure so as not to polute the global namespace // the widgets are generic enough to be reusable; if similar user interfaces are ported to JS, we could move the classes to the global scope -j + window.rulesAssistantOptions = (function() { "use strict" let V let r = "" - let root function rulesAssistantOptions() { V = State.variables @@ -20,9 +19,13 @@ window.rulesAssistantOptions = (function() { V.showEncyclopedia = 1 V.encyclopedia = "Personal Assistant" - root = new Element(document.querySelector("#passage-rules-assistant")) - let tmp = document.createElement("p") - tmp.innerHTML = `${propertTitle()}, I will review your slaves and make changes that will have a beneficial effect. Apologies, ${properTitle()}, but this function is... not fully complete. It may have some serious limitations. Please use the 'no default setting' option to identify areas I should not address.` + let tmp = document.createElement("div") + tmp.classList.add("passage") + document.getElementById("passages").appendChild(tmp) + const root = new Element(tmp) + + tmp = document.createElement("p") + tmp.innerHTML = `<em>${properTitle()}, I will review your slaves and make changes that will have a beneficial effect. Apologies, ${properTitle()}, but this function is... not fully complete. It may have some serious limitations. Please use the 'no default setting' option to identify areas I should not address.</em>` root.appendChild(new Element(tmp)) } @@ -61,8 +64,8 @@ window.rulesAssistantOptions = (function() { render(prefix, textinput) { const elem = document.createElement("div") - const prefix = document.createElement("span") - prefix.innerHTML = prefix + const label = document.createElement("span") + label.innerHTML = prefix let value if (textinput) { value = document.createElement("input") @@ -74,7 +77,7 @@ window.rulesAssistantOptions = (function() { value = document.createElement("strong") } value.setAttribute("type", "text") - elem.appendChild(prefix) + elem.appendChild(label) elem.appendChild(value) elem.classList.add("rajs-list") return elem @@ -141,7 +144,7 @@ window.rulesAssistantOptions = (function() { // children are bound to the master list class ListSubSection extends Element { render(label) { - const elem document.createElement("em") + const elem = document.createElement("em") elem.innerText = label + ":" return elem } diff --git a/src/uncategorized/initRules.tw b/src/uncategorized/initRules.tw index cae54f70b60..97f0eda7b92 100644 --- a/src/uncategorized/initRules.tw +++ b/src/uncategorized/initRules.tw @@ -84,13 +84,11 @@ XX: "no default setting", gelding: "no default setting", preg: "no default setting", - growth: { - boobs: "no default setting", - butt: "no default setting", - lips: "no default setting", - dick: "no default setting", - balls: "no default setting" - }, + growth_boobs: "no default setting", + growth_butt: "no default setting", + growth_lips: "no default setting", + growth_dick: "no default setting", + growth_balls: "no default setting", aphrodisiacs: "no default setting", autoSurgery: 0, autoBrand: 0, @@ -100,22 +98,20 @@ setAssignment: "no default setting", facilityRemove: false, removalAssignment: "rest", - surgery: { - eyes: "no default setting", - lactation: "no default setting", - prostate: "no default setting", - cosmetic: "nds", - accent: "no default setting", - shoulders: "no default setting", - shouldersImplant: "no default setting", - boobs: "no default setting", - hips: "no default setting", - hipsImplant: "no default setting", - butt: "no default setting", - faceShape: "no default setting", - lips: "no default setting", - holes: "nds" - }, + surgery_eyes: "no default setting", + surgery_lactation: "no default setting", + surgery_prostate: "no default setting", + surgery_cosmetic: "no default setting", + surgery_accent: "no default setting", + surgery_shoulders: "no default setting", + surgery_shouldersImplant: "no default setting", + surgery_boobs: "no default setting", + surgery_hips: "no default setting", + surgery_hipsImplant: "no default setting", + surgery_butt: "no default setting", + surgery_faceShape: "no default setting", + surgery_lips: "no default setting", + surgery_holes: "not default setting", underArmHColor: "no default setting", underArmHStyle: "no default setting", drug: "no default setting" diff --git a/src/uncategorized/rulesAssistant.tw b/src/uncategorized/rulesAssistant.tw index 94acc3234c3..6b4c290ed74 100644 --- a/src/uncategorized/rulesAssistant.tw +++ b/src/uncategorized/rulesAssistant.tw @@ -1,5 +1,7 @@ :: Rules Assistant [nobr] +<<script>>$(document).one(':passagedisplay', ev => { rulesAssistantOptions(); $(document).off(':passagedisplay') })<</script>> +/* <<set $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Main">> <<set $showEncyclopedia = 1, $encyclopedia = "Personal Assistant">> @@ -17,7 +19,7 @@ <<if ndef $currentRule.drug>> <<set $currentRule.drug = "no default setting">> <</if>> <<if ndef $currentRule.pregSpeed>> <<set $currentRule.pregSpeed = "nds">> <</if>> - /* Sanitize textbox inputs. */ + <<if $currentRule.growth.boobs != "no default setting">><<set $currentRule.growth.boobs = Number($currentRule.growth.boobs), $currentRule.growth.boobs = Math.clamp($currentRule.growth.boobs,0,48000)>><</if>> <<if $currentRule.growth.butt != "no default setting">><<set $currentRule.growth.butt = Number($currentRule.growth.butt), $currentRule.growth.butt = Math.clamp($currentRule.growth.butt,0,10)>><</if>> <<if $currentRule.growth.lips != "no default setting">><<set $currentRule.growth.lips = Number($currentRule.growth.lips), $currentRule.growth.lips = Math.clamp($currentRule.growth.lips,0,100)>><</if>> @@ -115,13 +117,13 @@ <</if>> </span> </center> -<</if>> /* closes if _length > 0 */ +<</if>> <br> //<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>, I will review your slaves and make changes that will have a beneficial effect. Apologies, sir, but this function is... not fully complete. It may have some serious limitations. Please use the 'no default setting' option to identify areas I should not address.// -<br><br> /* Control method for quick switching to specific rule in list */ +<br><br> List of rules: <br> <<if _length > 1>> <<set _crule = $r-1>> @@ -140,7 +142,7 @@ List of rules: <br> <<set _tempRule = {aphrodisiacs: "no default setting", condition: {id: "false"}, releaseRules: "no default setting", clitSetting: "no default setting", clitSettingXY: "no default setting", clitSettingXX: "no default setting", clitSettingEnergy: "no default setting", speechRules: "no default setting", clothes: "no default setting", collar: "no default setting", shoes: "no default setting", virginAccessory: "no default setting", aVirginAccessory: "no default setting", vaginalAccessory: "no default setting", aVirginDickAccessory: "no default setting", dickAccessory: "no default setting", bellyAccessory: "no default setting", aVirginButtplug: "no default setting", buttplug: "no default setting", eyeColor: "no default setting", makeup: "no default setting", nails: "no default setting", hColor: "no default setting", hLength: "no default setting", hStyle: "no default setting", pubicHColor: "no default setting", pubicHStyle: "no default setting", nipplesPiercing: "no default setting", areolaePiercing: "no default setting", clitPiercing: "no default setting", vaginaLube: "no default setting", vaginaPiercing: "no default setting", dickPiercing: "no default setting", anusPiercing: "no default setting", lipsPiercing: "no default setting", tonguePiercing: "no default setting", earPiercing: "no default setting", nosePiercing: "no default setting", eyebrowPiercing: "no default setting", navelPiercing: "no default setting", corsetPiercing: "no default setting", boobsTat: "no default setting", buttTat: "no default setting", vaginaTat: "no default setting", dickTat: "no default setting", lipsTat: "no default setting", anusTat: "no default setting", shouldersTat: "no default setting", armsTat: "no default setting", legsTat: "no default setting", backTat: "no default setting", stampTat: "no default setting", curatives: "no default setting", livingRules: "no default setting", relationshipRules: "no default setting", standardPunishment: "no default setting", standardReward: "no default setting", diet: "no default setting", dietCum: "no default setting", dietMilk: "no default setting", muscles: "no default setting", XY: "no default setting", XX: "no default setting", gelding: "no default setting", preg: "no default setting", growth: {boobs: "no default setting", butt: "no default setting", lips: "no default setting", dick: "no default setting", balls: "no default setting"}, autoSurgery: 0, autoBrand: 0, pornFameSpending: "no default setting", dietGrowthSupport: 0, eyewear: "no default setting", assignment: [], excludeAssignment: [], setAssignment: "no default setting", facility: [], excludeFacility: [], excludeSpecialSlaves: true, facilityRemove: false, removalAssignment: "rest", selectedSlaves: [], excludedSlaves: [], surgery: {eyes: "no default setting", lactation: "no default setting", prostate: "no default setting", cosmetic: "nds", accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hair: "nds", bodyhair:"nds", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: "nds", bellyImplant: "no default setting"}, underArmHColor: "no default setting", underArmHStyle: "no default setting", drug: "no default setting", eyes: "no default setting", pregSpeed: "nds", bellyImplantVol: -1}>> - /* pick an ID higher than the highest ID of any existing rule */ + <<for _tempRule.ID = 1, _r = 0; _r < _length; _r++>> <<set _tempRule.ID = Math.max(_tempRule.ID, $defaultRules[_r].ID + 1)>> <</for>> @@ -1171,7 +1173,7 @@ Drug regimes will be <<else>> ''moderate'' for all slaves. <<link "Intensify" "Rules Assistant">><<set $currentRule.growth.intensity = 1>><</link>> <</if>> -*/ +%/ <br> @@ -2528,7 +2530,7 @@ Relationship rules: <span id="relation">''$currentRule.relationshipRules.''</spa <</for>> <<goto "Rules Assistant">> <</link>> -<</if>> /* closes if _length > 0 */ +<</if>> <br><br> @@ -2547,3 +2549,4 @@ Relationship rules: <span id="relation">''$currentRule.relationshipRules.''</spa <</if>> [[Import a rule|Import Rule]] +*/ -- GitLab