From b5157f45fd5b3cd3ee88a8f5e78a418f8ecad634 Mon Sep 17 00:00:00 2001 From: pregmodfan <pregmodfan@cock.li> Date: Fri, 20 Jul 2018 00:08:45 +0300 Subject: [PATCH] custom label multiset and removal through RA, now it's more like tagging --- src/js/DefaultRules.tw | 11 ++++++++--- src/js/rulesAssistant.tw | 1 + src/js/rulesAssistantOptions.tw | 12 ++++++++++++ src/uncategorized/BackwardsCompatibility.tw | 2 ++ 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/js/DefaultRules.tw b/src/js/DefaultRules.tw index 466b15382ee..27a1b54220d 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 8783498ad7f..d7c11628650 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 1c9de4d5244..e947f7b77f3 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 fe5beda585e..7ffae04654c 100644 --- a/src/uncategorized/BackwardsCompatibility.tw +++ b/src/uncategorized/BackwardsCompatibility.tw @@ -2950,4 +2950,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"; })>> -- GitLab