From c3c9a68778f9bf12d9de361c746ff0e5714d90ba Mon Sep 17 00:00:00 2001 From: Vas <whiterocket@outlook.com> Date: Fri, 4 May 2018 16:23:16 +0300 Subject: [PATCH] cosmetics work --- src/js/rulesAssistantOptions.tw | 245 ++++++++++++++++++++++++++++++-- 1 file changed, 231 insertions(+), 14 deletions(-) diff --git a/src/js/rulesAssistantOptions.tw b/src/js/rulesAssistantOptions.tw index 3cc4a7258c0..bd73fd258a6 100644 --- a/src/js/rulesAssistantOptions.tw +++ b/src/js/rulesAssistantOptions.tw @@ -7,7 +7,7 @@ window.rulesAssistantOptions = (function() { "use strict" - + let V let r = "" @@ -213,7 +213,7 @@ window.rulesAssistantOptions = (function() { this.selectedItem = null this.value = this.element.querySelector(".rajs-value") } - + render(prefix, textinput) { const elem = document.createElement("div") const label = document.createElement("span") @@ -239,7 +239,7 @@ window.rulesAssistantOptions = (function() { if (this.selectedItem) this.selectedItem.deselect() this.propagateChange() } - + selectItem(item) { if (this.selectedItem) this.selectedItem.deselect() this.selectedItem = item @@ -307,7 +307,7 @@ window.rulesAssistantOptions = (function() { this.data = data !== undefined ? data : this.setvalue !== undefined ? this.setvalue : displayvalue this.selected = false } - + render(displayvalue) { const elem = document.createElement("span") elem.classList.add("rajs-listitem") @@ -338,7 +338,7 @@ window.rulesAssistantOptions = (function() { elem.innerText = label + ":" return elem } - + appendChild(child) { super.appendChild(child) child.parent = this.parent @@ -363,13 +363,14 @@ window.rulesAssistantOptions = (function() { class OptionsItem extends Element { constructor(label, onclick) { super(label) + this.label = label this.onclick = onclick } render(label, onclick) { const elem = document.createElement("span") elem.classList.add("rajs-listitem") elem.innerHTML = label - elem.onclick = () => { return this.onclick() } + elem.onclick = () => { return this.onclick(this) } return elem } } @@ -403,7 +404,7 @@ window.rulesAssistantOptions = (function() { render(label, selected) { const container = document.createElement("div") container.classList.add("rajs-listitem") - + const labelel = document.createElement("span") labelel.innerHTML = label @@ -579,7 +580,7 @@ window.rulesAssistantOptions = (function() { ["Never", "Always", "Custom"].forEach(i => this.fnlist.appendChild(i)) ["Devotion", "Trust", "Health", "Sex drive", "Weight", "Age", "Body Age", "Visible Age", "Muscles", "Lactation", "Pregnancy", "Pregnancy Multiples", "Belly Implant", "Belly Size"].forEach(i => this.fnlist.appendChild(i, this.getAttribute(i))) this.fnlist.onchange = () => this.fnchanged - + switch(V.currentRule.condition.function) { case "Never": case "Always": @@ -939,7 +940,7 @@ window.rulesAssistantOptions = (function() { ] nclothes.forEach(pair => nice.appendChild(new ListItem(...pair))) fsnclothes.forEach(pair => { if (isItemAccessible(pair[1])) nice.appendChild(new ListItem(...pair))}) - + harsh = new ListSubSection() this.appendChild(harsh) @@ -1183,7 +1184,7 @@ window.rulesAssistantOptions = (function() { ["None", () => this.none()] ] pairs.forEach(pair => this.appendChild(new OptionsItem(...pair))) - + this.breasts = new BreastGrowthList() this.butts = new ButtGrowthList() this.lips = new LipGrowthList() @@ -1587,7 +1588,7 @@ window.rulesAssistantOptions = (function() { ["Chastity", "chastity"], ["Situational", "situational"] ].forEach(pair => this.appendChild(new ListItem(...pair))) - this.selecTValue(V.currentRule.set.standardPunishment) + this.selectValue(V.currentRule.set.standardPunishment) this.onchange = (label, value) => V.currentRule.set.standardPunishment = value } } @@ -1670,6 +1671,8 @@ window.rulesAssistantOptions = (function() { ].forEach(pair => this.appendChild(new ListItem(...pair))) this.selectValue(V.currentRule.set.clitSettingXX) this.onchange = (label, value) => V.currentRule.set.clitSettingXX = value + } + } class SmartEnergyList extends List { constructor() { @@ -1728,10 +1731,224 @@ window.rulesAssistantOptions = (function() { ["4000", "4000", 4000], ["5000", "5000", 5000] ].forEach(pair => this.appendChild(new ListItem(...pair))) - this.selectValue(V.currentRule.set) - this.onchange = (label,value) => V.currentRule.set = value + this.selectValue(V.currentRule.set.pornFameSpending) + this.onchange = (label,value) => V.currentRule.set.pornFameSpending = value + } + } + + class CosmeticSection extends List { + constructor() { + this.appendChild(EyewearList) + this.appendChild(LensesList) + this.appendChild(MakeupList) + this.appendChild(NailsList) + this.appendChild(HairLengthList) + this.appendChild(HairColourList) + this.appendChild(HairStyleList) + this.appendChild(PubicHairColourList) + this.appendChild(PubicHairStyleList) + this.appendChild(ArmpitHairColourList) + this.appendChild(ArmpitHairStyleList) + } + } + + class EyewearList extends List { + constructor() { + super("Eyewear") + [ + ["no default setting"], + ["correct with contacts"], + ["universal glasses"], + ["blur with glasses"], + ["blur with contacts"], + ].forEach(pair => this.appendChild(new ListItem(...pair))) + this.selectValue(V.currentRule.set.eyewear) + this.onchange = (label, value) => V.currentRule.set.eyewear = value + } + } + + class LensesList extends Element { + constructor() { + super(V.currentRule.set.eyeColor) + this.appendChild(new OptionsItem("No default Setting", () => this.setValue("no default setting"))) + this.colourlist = new LensesColourList() + this.shapelist = new LensesShapeList() + this.appendChild(this.colourlist) + this.appendChild(this.shapelist) + } + + render(color) { + const elem = document.createElement("div") + elem.innerHTML = "Eye coloring: " + this.label = document.createElement("strong") + this.label.innerText = coloring + elem.appendChild(this.label) + } + + combine() { + const lst = [] + if (this.colourlist.value !== "no default setting") + lst.appendChild(this.colourlist.value) + if (this.shapelist.value !== "no default setting") + list.appendChild(this.shapelist.value) + if (lst.length === 0) return "no default value" + else return lst.join(" ") + } + + set_value() { + const tmp = this.combine() + this.label.innerText = tmp + V.currentRule.set.eyeColor = tmp + } + } + + class LensesColourList extends Options { + constructor() { + super("Color:") + [ + ["no default setting"] + ["blue"], + ["black"], + ["brown"], + ["green"], + ["turquoise"], + ["sky-blue"], + ["hazel"], + ["pale-grey"], + ["white"], + ["pink"], + ["amber"], + ["red"] + ].forEach(i => this.appendChild(new OptionsItem(i, item => { + this.value = item.label + this.parent.set_value() + }))) + } + } + + class LensesShapeList extends Options { + constructor() { + super("Shape:") + [ + ["no default setting"], + ["catlike"], + ["serpent-like"], + ["devilish"], + ["demonic"], + ["hypnotic"], + ["heart-shaped"], + ["wide-eyed"], + ["almond-shaped"], + ["bright"], + ["teary"], + ["vacant"], + ].forEach(i => this.appendChild(new OptionsItem(i, item => { + this.value = item.label + this.parent.set_value() + }))) + } + } + + class MakeupList extends List { + constructor() { + super("Makeup") + [ + ["no default setting"], + ["makeup-free", "makeup-free", 0], + ["nice", "nice", 1], + ["gorgeous", "gorgeous", 2], + ["color-coordinate with hair", "color-coordinate with hair", 3], + ["slutty", "slutty", 4] + ].forEach(pair => this.appendChild(new ListItem(...pair))) + this.selectValue(V.currentRule.set.makeup) + this.onchange = (label, value) => V.currentRule.set.makeup = value + } + } + + class NailsList extends List { + constructor() { + super("Nails") + [ + [], + ].forEach(pair => this.appendChild(new ListItem(...pair))) + this.selectValue(V.currentRule.set.nails) + this.onchange = (label, value) => V.currentRule.set.nails = value } } - return rulesAssistantOptions + class HairLengthList extends List { + constructor() { + super("Nails") + [ + [], + ].forEach(pair => this.appendChild(new ListItem(...pair))) + this.selectValue(V.currentRule.set.nails) + this.onchange = (label, value) => V.currentRule.set.nails = value + } + } + class HairColourList extends List { + constructor() { + super("Nails") + [ + [], + ].forEach(pair => this.appendChild(new ListItem(...pair))) + this.selectValue(V.currentRule.set.nails) + this.onchange = (label, value) => V.currentRule.set.nails = value + } + } + + class HairStyleList extends List { + constructor() { + super("Nails") + [ + [], + ].forEach(pair => this.appendChild(new ListItem(...pair))) + this.selectValue(V.currentRule.set.nails) + this.onchange = (label, value) => V.currentRule.set.nails = value + } + } + + class PubicHairColourList extends List { + constructor() { + super("Nails") + [ + [], + ].forEach(pair => this.appendChild(new ListItem(...pair))) + this.selectValue(V.currentRule.set.nails) + this.onchange = (label, value) => V.currentRule.set.nails = value + } + } + + class PubicHairStyleList extends List { + constructor() { + super("Nails") + [ + [], + ].forEach(pair => this.appendChild(new ListItem(...pair))) + this.selectValue(V.currentRule.set.nails) + this.onchange = (label, value) => V.currentRule.set.nails = value + } + } + + class ArmpitHairColourList extends List { + constructor() { + super("Nails") + [ + [], + ].forEach(pair => this.appendChild(new ListItem(...pair))) + this.selectValue(V.currentRule.set.nails) + this.onchange = (label, value) => V.currentRule.set.nails = value + } + } + + class ArmpitHairStyleList extends List { + constructor() { + super("Nails") + [ + [], + ].forEach(pair => this.appendChild(new ListItem(...pair))) + this.selectValue(V.currentRule.set.nails) + this.onchange = (label, value) => V.currentRule.set.nails = value + } + } })() -- GitLab