From 1ca5acdf2c6ed2e992eccb2210f4fb3f7b1cb155 Mon Sep 17 00:00:00 2001 From: 2hu4u <2hu4u@airmail.cc> Date: Sat, 14 Jul 2018 15:14:49 +1200 Subject: [PATCH] Rules Assistant Haircuts Added hair length maintenance to the RA, put RA haircuts into backwards compat. --- src/js/DefaultRules.tw | 12 ++++++++++++ src/js/rulesAssistant.tw | 1 + src/js/rulesAssistantOptions.tw | 15 +++++++++++++++ src/uncategorized/BackwardsCompatibility.tw | 4 ++++ src/uncategorized/initRules.tw | 2 ++ 5 files changed, 34 insertions(+) diff --git a/src/js/DefaultRules.tw b/src/js/DefaultRules.tw index 029db52dbd0..2b7898375cc 100644 --- a/src/js/DefaultRules.tw +++ b/src/js/DefaultRules.tw @@ -1769,6 +1769,18 @@ window.DefaultRules = (function() { } } + if (rule.haircuts !== undefined && (rule.haircuts !== "no default setting")) { + if (slave.bald != 1) { + if (rule.haircuts === 1 && slave.haircuts !== 1) { + r += `<br>${slave.slaveName}'s hair will now be maintained at ${lengthToEitherUnit(slave.hLength)} long.`; + slave.haircuts = 1; + } else if (rule.haircuts === 0 && slave.haircuts !== 0) { + r += `<br>${slave.slaveName}'s hair length will no longer be maintained.`; + slave.haircuts = 0; + } + } + } + if (rule.pubicHColor !== undefined && (rule.pubicHColor !== "no default setting")) { if (slave.pubicHStyle != "bald" && slave.pubicHStyle != "hairless") { if ((slave.pubicHColor !== rule.pubicHColor)) { diff --git a/src/js/rulesAssistant.tw b/src/js/rulesAssistant.tw index 3e0d87f0bdf..c7fcfe7abf3 100644 --- a/src/js/rulesAssistant.tw +++ b/src/js/rulesAssistant.tw @@ -208,6 +208,7 @@ window.emptyDefaultRule = function emptyDefaultRule() { nails: "no default setting", hColor: "no default setting", hLength: "no default setting", + haircuts: "no default setting", hStyle: "no default setting", pubicHColor: "no default setting", pubicHStyle: "no default setting", diff --git a/src/js/rulesAssistantOptions.tw b/src/js/rulesAssistantOptions.tw index 501d897b1bd..dd4a98aa105 100644 --- a/src/js/rulesAssistantOptions.tw +++ b/src/js/rulesAssistantOptions.tw @@ -969,6 +969,7 @@ window.rulesAssistantOptions = (function() { this.appendChild(new MakeupList()); this.appendChild(new NailsList()); this.appendChild(new HairLengthList()); + this.appendChild(new HaircutsList()); this.appendChild(new HairColourList()); this.appendChild(new HairStyleList()); this.appendChild(new PubicHairColourList()); @@ -2076,6 +2077,20 @@ window.rulesAssistantOptions = (function() { this.onchange = (value) => current_rule.set.hLength = value; } } + + class HaircutsList extends List { + constructor() { + const pairs = [ + ["no default setting"], + ["maintain hair length", 1], + ["do not maintain hair length", 0] + ]; + super("Hair length maintenance", pairs); + this.setValue(current_rule.set.haircuts); + this.onchange = (value) => current_rule.set.haircuts = value; + } + } + class HairColourList extends List { constructor() { const pairs = [ diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw index 7ce96339b6c..87c736cf6b9 100644 --- a/src/uncategorized/BackwardsCompatibility.tw +++ b/src/uncategorized/BackwardsCompatibility.tw @@ -2945,3 +2945,7 @@ Done! if (x.set.preg === -1) x.set.preg = true; else x.set.preg = false; })>> + +<<run $defaultRules.filter(x => !([1, 0, "no default setting"].includes(x.set.haircuts))).forEach(x => { + x.set.haircuts = "no default setting"; +})>> diff --git a/src/uncategorized/initRules.tw b/src/uncategorized/initRules.tw index 2dc97f98aae..aaf8c51768e 100644 --- a/src/uncategorized/initRules.tw +++ b/src/uncategorized/initRules.tw @@ -47,6 +47,7 @@ nails: "no default setting", hColor: "no default setting", hLength: "no default setting", + haircuts: "no default setting", hStyle: "no default setting", pubicHColor: "no default setting", pubicHStyle: "no default setting", @@ -169,6 +170,7 @@ nails: "no default setting", hColor: "no default setting", hLength: "no default setting", + haircuts: "no default setting", hStyle: "no default setting", pubicHColor: "no default setting", pubicHStyle: "no default setting", -- GitLab