diff --git a/src/init/setupVars.tw b/src/init/setupVars.tw index 3c3044ea416a6b226c15bd1805b66630947b0262..80497be70b32d94691f4ab73fcf22b2d88f721f7 100644 --- a/src/init/setupVars.tw +++ b/src/init/setupVars.tw @@ -1514,12 +1514,65 @@ Then pick _namePool.random(), or display those names as possible choices, or do <<set setup.badNames = ["Ass Kisser", "Ass Licker", "Ass", "Assfucker", "Asshole", "Bitch", "Cocksucker", "Creep", "Cunt", "Despoiler", "Dick", "Dicksucker", "Dipshit", "Douchebag", "Dumbass", "DumbFuck", "Fucker", "Fuckface", "Fuckhead", "Jackass", "Jerk", "Prick", "Pussy", "Rapist", "Retard", "Ruiner", "Slave", "Slaver", "Slut", "Sodomite", "Traitor", "Trash", "Whore"]>> -<<set setup.harshCollars = [{name: "Tight steel", value: "tight steel"}, {name: "Cruel retirement counter", value: "cruel retirement counter", fs: "seeage"}, {name: "Uncomfortable leather", value: "uncomfortable leather"}, {name: "Pregnancy biometrics", value: "preg biometrics"}, {name: "Shock punishment", value: "shock punishment"}, {name: "Dildo gag", value: "dildo gag"}, {name: "Massive dildo gag", value: "massive dildo gag", rs: "buyGag"}, {name: "Ball gag", value: "ball gag"}, {name: "Bit gag", value: "bit gag"}, {name: "Neck corset", value: "neck corset"}, {name: "Porcelain mask", value: "porcelain mask"}]>> -<<set setup.shoes = [{name: "No default footwear setting", value: "no default setting"}, {name: "Barefoot", value: "none"}, {name: "Flats", value: "flats"}, {name: "Heels", value: "heels"}, {name: "Pumps", value: "pumps"}, {name: "Thigh boots", value: "boots"}, {name: "Painfully extreme heels", value: "extreme heels"}]>> -<<set setup.bellyAccessories = [{name: "No default setting", value: "no default setting"}, {name: "None", value: "none"}, {name: "Tight corset", value: "a corset"}, {name: "Extreme corset", value: "an extreme corset"}, {name: "1st Trimester belly", value: "a small empathy belly", fs: "repopulation", rs: "boughtBelly"}, {name: "2nd Trimester belly", value: "a medium empathy belly", fs: "repopulation", rs: "boughtBelly"}, {name: "3rd Trimester belly", value: "a large empathy belly", fs: "repopulation", rs: "boughtBelly"}, {name: "3rd Trimester twins belly", value: "a huge empathy belly", fs: "repopulation", rs: "boughtBelly"}]>> -<<set setup.vaginalAccessories = [{name: "No default setting", value: "no default setting"}, {name: "None", value: "none"}, {name: "Dildo", value: "dildo"}, {name: "Long dildo", value: "long dildo", rs: "buyBigDildos"}, {name: "Large dildo", value: "large dildo"}, {name: "Long, large dildo", value: "long, large dildo", rs: "buyBigDildos"}, {name: "Huge dildo", value: "huge dildo"}, {name: "Long, huge dildo", value: "long, huge dildo", rs: "buyBigDildos"}, {name: "Chastity belt", value: "chastity belt"}, {name: "Anal chastity belt", value: "anal chastity"}, {name: "Combined chastity belt", value: "combined chastity"}]>> -<<set setup.dickAccessories = [{name: "No default setting", value: "no default setting"}, {name: "None", value: "none"}, {name: "Chastity cage", value: "chastity"}, {name: "Anal chastity", value: "anal chastity"}, {name: "Combined chastity", value: "combined chastity"}]>> -<<set setup.buttplugs = [{name: "No default setting", value: "no default setting"}, {name: "None", value: "none"}, {name: "Standard plug", value: "plug"}, {name: "Long plug", value: "long plug", rs: "buyBigPlugs"}, {name: "Large plug", value: "large plug"}, {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.harshCollars = [ + {name: "Tight steel", value: "tight steel"}, + {name: "Cruel retirement counter", value: "cruel retirement counter", fs: "seeage"}, + {name: "Uncomfortable leather", value: "uncomfortable leather"}, + {name: "Pregnancy biometrics", value: "preg biometrics"}, + {name: "Shock punishment", value: "shock punishment"}, + {name: "Dildo gag", value: "dildo gag"}, + {name: "Massive dildo gag", value: "massive dildo gag", rs: "buyGag"}, + {name: "Ball gag", value: "ball gag"}, + {name: "Bit gag", value: "bit gag"}, + {name: "Neck corset", value: "neck corset"}, + {name: "Porcelain mask", value: "porcelain mask"}]>> + +<<set setup.shoes = [ + {name: "No default footwear setting", value: "no default setting"}, + {name: "Barefoot", value: "none"}, + {name: "Flats", value: "flats"}, + {name: "Heels", value: "heels"}, + {name: "Pumps", value: "pumps"}, + {name: "Thigh boots", value: "boots"}, + {name: "Painfully extreme heels", value: "extreme heels"}]>> + +<<set setup.bellyAccessories = [ + {name: "No default setting", value: "no default setting"}, + {name: "None", value: "none"}, + {name: "Tight corset", value: "a corset"}, + {name: "Extreme corset", value: "an extreme corset"}, + {name: "1st Trimester belly", value: "a small empathy belly", fs: "repopulation", rs: "boughtBelly"}, + {name: "2nd Trimester belly", value: "a medium empathy belly", fs: "repopulation", rs: "boughtBelly"}, + {name: "3rd Trimester belly", value: "a large empathy belly", fs: "repopulation", rs: "boughtBelly"}, + {name: "3rd Trimester twins belly", value: "a huge empathy belly", fs: "repopulation", rs: "boughtBelly"}]>> + +<<set setup.vaginalAccessories = [ + {name: "No default setting", value: "no default setting"}, + {name: "None", value: "none"}, + {name: "Dildo", value: "dildo"}, + {name: "Long dildo", value: "long dildo", rs: "buyBigDildos"}, + {name: "Large dildo", value: "large dildo"}, + {name: "Long, large dildo", value: "long, large dildo", rs: "buyBigDildos"}, + {name: "Huge dildo", value: "huge dildo"}, + {name: "Long, huge dildo", value: "long, huge dildo", rs: "buyBigDildos"}, + {name: "Chastity belt", value: "chastity belt"}, + {name: "Anal chastity belt", value: "anal chastity"}, + {name: "Combined chastity belt", value: "combined chastity"}]>> + +<<set setup.dickAccessories = [ + {name: "No default setting", value: "no default setting"}, + {name: "None", value: "none"}, + {name: "Chastity cage", value: "chastity"}, + {name: "Anal chastity", value: "anal chastity"}, {name: "Combined chastity", value: "combined chastity"}]>> + +<<set setup.buttplugs = [ + {name: "No default setting", value: "no default setting"}, + {name: "None", value: "none"}, + {name: "Standard plug", value: "plug"}, + {name: "Long plug", value: "long plug", rs: "buyBigPlugs"}, + {name: "Large plug", value: "large plug"}, + {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"]>> diff --git a/src/js/DefaultRules.tw b/src/js/DefaultRules.tw index d10e931375271834d3bd9ee7c2accc830fb4b348..de4842da3e738c5d10514c09ef9111721f884362 100644 --- a/src/js/DefaultRules.tw +++ b/src/js/DefaultRules.tw @@ -7,10 +7,11 @@ window.DefaultRules = (function() { let r; function DefaultRules(slave) { + if (slave.useRulesAssistant === 0) return r; //exempted + V = State.variables; r = ""; let rule = MergeRules(slave); - if (Object.keys(rule).length === 0) return r; // no rules apply AssignJobToSlave(slave, rule); @@ -57,10 +58,9 @@ window.DefaultRules = (function() { function MergeRules(slave) { // merge all rules applying on a slave into one big rule - const rules = V.defaultRules - .filter(rule => ruleAppliesP(rule.condition, slave)) - .map(rule => ProcessAssignments(slave, Object.assign({}, rule.set))); - return mergeRules(rules); + const rules = V.defaultRules.filter(x => ruleAppliesP(x.condition, slave)) + slave.currentRules = rules.map(x => x.ID) + return mergeRules(rules.map(x => ProcessAssignments(slave, Object.assign({}, x.set)))); } function ProcessAssignments(slave, rule) { diff --git a/src/js/rulesAssistant.tw b/src/js/rulesAssistant.tw index 2b3d71b94141fabfb05d43d6be2e02c7037d6712..90e368fc2ceac6f95a07985db3bdb1dae4bd646a 100644 --- a/src/js/rulesAssistant.tw +++ b/src/js/rulesAssistant.tw @@ -50,36 +50,6 @@ 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; - let r = ""; - - V.defaultRules.forEach(rule => { - let applies = ruleAppliesP(rule.condition, slave); - if (applies) { - if (!ruleApplied(slave, rule)) { - slave.currentRules.push(rule.ID); - r += `<br><span class="tan">Rule "${rule.name}" now applies to ${slave.slaveName}, who is assigned to ${slave.assignment}.</span>\n`; - } - } else if (ruleApplied(slave, rule)) - r += RARemoveRule(slave, rule); - }); - return r; -}; - -// remove the RA rule from the slave -window.RARemoveRule = function RARemoveRule(slave, rule) { - let r = ""; - const index = slave.currentRules.findIndex(rule => rule.ID === rule); - if (index === -1) return r; - const slave_rule = slave.currentRules[index]; - slave.currentRules.splice(index, 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 += RAFacilityRemove(slave, slave_rule.set); - return r; -}; - // remove slave from the facility described by the rule window.RAFacilityRemove = function RAFacilityRemove(slave, rule) { const V = State.variables; @@ -327,7 +297,6 @@ window.emptyDefaultRule = function emptyDefaultRule() { // Call and then check potential change against $slaveAfterRA to see if the RA would revert it. window.RulesDeconfliction = function RulesDeconfliction(slave) { const before = clone(slave); - CheckAutoRulesActivate(slave); DefaultRules(slave); V.slaveAfterRA = clone(slave); slave = before; diff --git a/src/js/rulesAssistantOptions.tw b/src/js/rulesAssistantOptions.tw index e0934caaa6b264409cb815a7e15e17e5aa10ceca..6f2b561882f7fbacad15aa0db676fa8e3430e5af 100644 --- a/src/js/rulesAssistantOptions.tw +++ b/src/js/rulesAssistantOptions.tw @@ -1140,20 +1140,12 @@ window.rulesAssistantOptions = (function() { const nice = new ListSubSection(this, "Nice", ncollars); this.appendChild(nice); - const hcollars = [ - ["Tight steel", "tight steel"], - ["Uncomfortable leather", "uncomfortable leather"], - ["Pregnancy biometrics", "preg biometrics"], - ["Shock punishment", "shock punishment"], - ["Dildo gag", "dildo gag"], - ["Ball gag", "ball gag"], - ["Bit gag", "bit gag"], - ["Neck corset", "neck corset"], - ]; - if (V.seeAge !== 0) - hcollars.push(["Cruel retirement counter", "cruel retirement counter"]); - if (V.toysBoughtGags === 1) - hcollars.push(["Massive dildo gag", "massive dildo gag"]); + const hcollars = []; + setup.harshCollars.forEach(item => { + if (collar.fs === "seeage" && V.seeAge === 0) return; + else if (collar.rs === "buyGag" && V.toysBoughtGags !== 1) return; + else hcollars.push([item.name, item.value]); + }); const harsh = new ListSubSection(this, "Harsh", hcollars); this.appendChild(harsh); diff --git a/src/pregmod/newChildIntro.tw b/src/pregmod/newChildIntro.tw index ac8c44ebe5b812240775c85536bb39fc8632c9c8..c2e4d79e1be8b30dea4f5c686d0a2871b51c0345 100644 --- a/src/pregmod/newChildIntro.tw +++ b/src/pregmod/newChildIntro.tw @@ -603,7 +603,6 @@ You slowly strip down, gauging her reactions to your show, until you are fully n <span id="rules"> <<link "Apply default rules">> <<replace "#rules">> - <<= CheckAutoRulesActivate($activeSlave)>> <<= DefaultRules($activeSlave)>> <</replace>> <</link>> diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw index 29742ce6149512fe37b35bd76ea28b7ebec8450b..ff8988ca941c5a5b2e9aa9da6284172fe0c1c849 100644 --- a/src/uncategorized/main.tw +++ b/src/uncategorized/main.tw @@ -112,7 +112,7 @@ __''MAIN MENU''__ //[[Summary Options]]// <<else>> | //<<link "Stop applying Rules Assistant at week end">><<set $rulesAssistantAuto = 0>><<goto "Main">><</link>>// <</if>> - | //<<link "Re-apply Rules Assistant now (this will only check slaves in the Penthouse)">><<for _i = 0;_i < _SL;_i++>><<if $slaves[_i].assignmentVisible == 1 && $slaves[_i].useRulesAssistant == 1>><<= CheckAutoRulesActivate($slaves[_i])>><<= DefaultRules($slaves[_i])>><</if>><</for>><<goto "Main">><</link>>// + | //<<link "Re-apply Rules Assistant now (this will only check slaves in the Penthouse)">><<for _i = 0;_i < _SL;_i++>><<if $slaves[_i].assignmentVisible == 1 && $slaves[_i].useRulesAssistant == 1>><<= DefaultRules($slaves[_i])>><</if>><</for>><<goto "Main">><</link>>// <</if>> <<if $useSlaveSummaryTabs == 1>> diff --git a/src/uncategorized/newSlaveIntro.tw b/src/uncategorized/newSlaveIntro.tw index e8b771649722c9df7c167942663536d65974f4b0..64a76c1d3fbb8191cc3f1e1a864eb38eb80b02e9 100644 --- a/src/uncategorized/newSlaveIntro.tw +++ b/src/uncategorized/newSlaveIntro.tw @@ -531,7 +531,6 @@ The legalities completed, ''__@@.pink;<<SlaveFullName $activeSlave>>@@__'' <<if <span id="rules"> <<link "Apply default rules">> <<replace "#rules">> - <<= CheckAutoRulesActivate($activeSlave)>> <<= DefaultRules($activeSlave)>> <</replace>> <</link>> diff --git a/src/uncategorized/rulesAssistantReport.tw b/src/uncategorized/rulesAssistantReport.tw index cc9b7ec26466e24466345be87adeeb0ae0daddf1..541c6cb80d21bee7182f0c9688565a2b4801fac6 100644 --- a/src/uncategorized/rulesAssistantReport.tw +++ b/src/uncategorized/rulesAssistantReport.tw @@ -4,7 +4,6 @@ <<for $i = 0; $i < _SL; $i++>> <<if ($slaves[$i].useRulesAssistant == 1)>> - <<= CheckAutoRulesActivate($slaves[$i])>> <<= DefaultRules($slaves[$i])>> <</if>> <</for>> diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw index 84a0ba8f37c1c7e1904ffe2037401560bf4bf214..0b9d366812e11120b461a2f3a0fc015e6eecd848 100644 --- a/src/uncategorized/slaveInteract.tw +++ b/src/uncategorized/slaveInteract.tw @@ -392,7 +392,6 @@ <</if>> <<link "//Apply rules//">> <<silently>> - <<run CheckAutoRulesActivate($activeSlave)>> <<run DefaultRules($activeSlave)>> <</silently>> <<goto "Slave Interact">> diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw index e634c8162445eb6458ee2a3f689c58a109e3d584..a6c87cf34b17a431fcfea1569ffe8ac1de03ddec 100644 --- a/src/utility/miscWidgets.tw +++ b/src/utility/miscWidgets.tw @@ -1636,7 +1636,6 @@ <<if $universalRulesNewSlavesRA == 1>> <<if $rulesAssistantAuto != 0>> <<silently>> - <<run CheckAutoRulesActivate($args[0])>> <<run DefaultRules($args[0])>> <</silently>> <</if>>