From 6344de0abb4484e070caadfbe71fe18b76d4296a Mon Sep 17 00:00:00 2001 From: DCoded <dicoded@email.com> Date: Mon, 7 Feb 2022 00:12:31 -0500 Subject: [PATCH] Fixes and cleanup --- src/facilities/farmyard/animals/animals.js | 58 +++++++++++++++------- 1 file changed, 40 insertions(+), 18 deletions(-) diff --git a/src/facilities/farmyard/animals/animals.js b/src/facilities/farmyard/animals/animals.js index 99b82156d14..ad5ad519e6b 100644 --- a/src/facilities/farmyard/animals/animals.js +++ b/src/facilities/farmyard/animals/animals.js @@ -348,12 +348,7 @@ App.Facilities.Farmyard.animals = function() { animal.setName(value); animalName = animal.name; - App.UI.DOM.replace(typeDiv, type); - App.UI.DOM.replace(rarityDiv, rarity); - App.UI.DOM.replace(articleDiv, article); - App.UI.DOM.replace(dickDiv, dick); - App.UI.DOM.replace(deadlinessDiv, deadliness); - App.UI.DOM.replace(addDiv, add()); + refresh(); }), ); @@ -366,7 +361,7 @@ App.Facilities.Farmyard.animals = function() { App.UI.DOM.makeTextBox(animal.species || '', value => { animal.setSpecies(value); - App.UI.DOM.replace(addDiv, add()); + refresh(); }), ); @@ -374,7 +369,7 @@ App.Facilities.Farmyard.animals = function() { } function type() { - const options = new App.UI.OptionsGroup(); + const options = new App.UI.OptionsGroup().customRefresh(refresh); options.addOption(null, "type", animal) .addValue('Canine', 'canine') .addValue('Hooved', 'hooved') @@ -392,7 +387,7 @@ App.Facilities.Farmyard.animals = function() { } function rarity() { - const options = new App.UI.OptionsGroup(); + const options = new App.UI.OptionsGroup().customRefresh(refresh); options.addOption(null, "rarity", animal) .addValue('Domestic', 'domestic') .addValue('Exotic', 'exotic'); @@ -407,7 +402,7 @@ App.Facilities.Farmyard.animals = function() { } function article() { - const options = new App.UI.OptionsGroup(); + const options = new App.UI.OptionsGroup().customRefresh(refresh); options.addOption(null, "articleAn", animal) .addValue('Yes', 'an') .addValue('No', 'a'); @@ -426,7 +421,7 @@ App.Facilities.Farmyard.animals = function() { const dickSizeDiv = document.createElement("div"); dickSizeDiv.append( - `How large is ${animal.name ? `${animal.articleAn} male ${animal.name}` : `a male`}'s penis? `, + `How large is a male${animal.name ? ` ${animalName}` : ``}'s penis? `, App.UI.DOM.makeTextBox(animal.dick.size || 2, value => { animal.setDick(value, animal.dick.desc || null); @@ -470,8 +465,6 @@ App.Facilities.Farmyard.animals = function() { function add() { const disabledReasons = []; - let link; - if (!animal.name) { disabledReasons.push(`Animal must have a name.`); } @@ -481,19 +474,48 @@ App.Facilities.Farmyard.animals = function() { } if (disabledReasons.length > 0) { - link = App.UI.DOM.disabledLink(`Add`, disabledReasons); + App.UI.DOM.appendNewElement("div", addDiv, App.UI.DOM.disabledLink(`Add`, disabledReasons), ['margin-top']); } else { - link = App.UI.DOM.link(`Add`, () => { + App.UI.DOM.appendNewElement("div", addDiv, App.UI.DOM.link(`Add`, () => { App.Data.animals.push(animal); App.UI.DOM.replace(addDiv, addAnimal()); - }); + }), ['margin-top']); } - addDiv.append(link); - return addDiv; } + + /** + * @typedef {'name'|'species'|'type'|'rarity'|'article'|'dick'|'deadliness'|'add'} Exclude + * @param {Exclude[]} [exclude] One of 'name', 'species', 'type', 'rarity', 'article', 'dick', 'deadliness', or 'add'. + */ + function refresh(exclude = []) { + if (!exclude.includes('name')) { + App.UI.DOM.replace(nameDiv, name); + } + if (!exclude.includes('species')) { + App.UI.DOM.replace(speciesDiv, species); + } + if (!exclude.includes('type')) { + App.UI.DOM.replace(typeDiv, type); + } + if (!exclude.includes('rarity')) { + App.UI.DOM.replace(rarityDiv, rarity); + } + if (!exclude.includes('article')) { + App.UI.DOM.replace(articleDiv, article); + } + if (!exclude.includes('dick')) { + App.UI.DOM.replace(dickDiv, dick); + } + if (!exclude.includes('deadliness')) { + App.UI.DOM.replace(deadlinessDiv, deadliness); + } + if (!exclude.includes('add')) { + App.UI.DOM.replace(addDiv, add); + } + } } }; -- GitLab