diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt index 0974c23f63bab45db2410232ad9c53a0ce76925f..00596324dc030bdce9cdca160781308c6202f737 100644 --- a/devNotes/twine JS.txt +++ b/devNotes/twine JS.txt @@ -2699,6 +2699,7 @@ window.emptyDefaultRule = function emptyDefaultRule() { bellyImplantVol: -1, teeth: "no default setting", label: "no default setting", + removeLabel: "no default setting", skinColor: "no default setting", } }; @@ -13916,9 +13917,14 @@ window.DefaultRules = (function() { } function ProcessLabel(slave, rule) { - if (rule.label !== "no default setting" && slave.customLabel !== rule.label) { - slave.customLabel = rule.label; - r += `<br>${slave.slaveName}'s label has been set to ${rule.label}`; + if (rule.label !== "no default setting" && !slave.customLabel.includes("["+rule.label+"]")) { + slave.customLabel = slave.customLabel + "[" + rule.label + "]"; + r += `<br>${slave.slaveName} has been tagged as ${rule.label}`; + } + + if (rule.removeLabel !== "no default setting" && slave.customLabel.includes("["+rule.removeLabel+"]")) { + slave.customLabel = slave.customLabel.replace("["+rule.removeLabel+"]", ""); + r += `<br>${slave.slaveName}'s tag [${rule.removeLabel}] is removed.`; } } @@ -14893,6 +14899,7 @@ window.rulesAssistantOptions = (function() { constructor() { super("Other Settings"); this.appendChild(new LabelList()); + this.appendChild(new LabelRemoveList()); } } @@ -17080,6 +17087,17 @@ window.rulesAssistantOptions = (function() { } } + class LabelRemoveList extends List { + constructor() { + const items = [ + ["no default setting"], + ]; + super("Remove custom label", items, true); + this.setValue(current_rule.set.removeLabel); + this.onchange = (value) => current_rule.set.removeLabel = value; + } + } + class SkinColourList extends List { constructor() { const items = [ diff --git a/src/js/DefaultRules.tw b/src/js/DefaultRules.tw index 466b15382eebefa5d5f9caa67b29b7fc3761d3f2..27a1b54220d92fe50d08a404426ef6c342e227ec 100644 --- a/src/js/DefaultRules.tw +++ b/src/js/DefaultRules.tw @@ -2191,9 +2191,14 @@ window.DefaultRules = (function() { } function ProcessLabel(slave, rule) { - if (rule.label !== "no default setting" && slave.customLabel !== rule.label) { - slave.customLabel = rule.label; - r += `<br>${slave.slaveName}'s label has been set to ${rule.label}`; + if (rule.label !== "no default setting" && !slave.customLabel.includes("["+rule.label+"]")) { + slave.customLabel = slave.customLabel + "[" + rule.label + "]"; + r += `<br>${slave.slaveName} has been tagged as ${rule.label}`; + } + + if (rule.removeLabel !== "no default setting" && slave.customLabel.includes("["+rule.removeLabel+"]")) { + slave.customLabel = slave.customLabel.replace("["+rule.removeLabel+"]", ""); + r += `<br>${slave.slaveName}'s tag [${rule.removeLabel}] is removed.`; } } diff --git a/src/js/rulesAssistant.tw b/src/js/rulesAssistant.tw index 8783498ad7f72a20b6ae509a50c37cb7ce116ff6..d7c116286504c7916fc744a742aa7ca0979633cd 100644 --- a/src/js/rulesAssistant.tw +++ b/src/js/rulesAssistant.tw @@ -290,6 +290,7 @@ window.emptyDefaultRule = function emptyDefaultRule() { bellyImplantVol: -1, teeth: "no default setting", label: "no default setting", + removeLabel: "no default setting", skinColor: "no default setting", } }; diff --git a/src/js/rulesAssistantOptions.tw b/src/js/rulesAssistantOptions.tw index 1c9de4d52442792414abaddc07068078605937e4..e947f7b77f38ed1181fd5bc6b5ba8a1905f03aa3 100644 --- a/src/js/rulesAssistantOptions.tw +++ b/src/js/rulesAssistantOptions.tw @@ -966,6 +966,7 @@ window.rulesAssistantOptions = (function() { constructor() { super("Other Settings"); this.appendChild(new LabelList()); + this.appendChild(new LabelRemoveList()); } } @@ -3152,6 +3153,17 @@ window.rulesAssistantOptions = (function() { this.onchange = (value) => current_rule.set.label = value; } } + + class LabelRemoveList extends List { + constructor() { + const items = [ + ["no default setting"], + ]; + super("Remove custom label", items, true); + this.setValue(current_rule.set.removeLabel); + this.onchange = (value) => current_rule.set.removeLabel = value; + } + } class SkinColourList extends List { constructor() { diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw index 0f711524ea1bfc6cb2a6811659ef30766c3b1d2e..cf33aab64f43587013297d628d44bc0b3ce577ae 100644 --- a/src/uncategorized/BackwardsCompatibility.tw +++ b/src/uncategorized/BackwardsCompatibility.tw @@ -2953,4 +2953,6 @@ Done! <<run $defaultRules.filter(x => x.set.label === undefined).forEach(x => { x.set.label = "no default setting"; })>> +<<run $defaultRules.filter(x => x.set.removeLabel === undefined).forEach(x => { x.set.removeLabel = "no default setting"; })>> + <<run $defaultRules.filter(x => x.set.skinColour === undefined).forEach(x => { x.set.skinColor = "no default setting"; })>>