From 23cba2a9f4dc198ce935196166e737397da97a84 Mon Sep 17 00:00:00 2001 From: DCoded <dicoded@email.com> Date: Sat, 5 Jun 2021 18:22:31 -0400 Subject: [PATCH] Facility methods now take functions as parameters --- css/facilities/facilities.css | 4 ---- src/facilities/Facility.js | 36 +++++++++++++++++++++++---------- src/facilities/clinic/clinic.js | 11 +++++----- src/facilities/utils.js | 4 ++-- 4 files changed, 33 insertions(+), 22 deletions(-) diff --git a/css/facilities/facilities.css b/css/facilities/facilities.css index a875aba9176..f68e38b8f97 100644 --- a/css/facilities/facilities.css +++ b/css/facilities/facilities.css @@ -1,7 +1,3 @@ -.facility-rename { - margin-top: 1em; -} - .margin-top { margin-top: 1em; } diff --git a/src/facilities/Facility.js b/src/facilities/Facility.js index a2fbd67b9e6..c85cdf96d80 100644 --- a/src/facilities/Facility.js +++ b/src/facilities/Facility.js @@ -12,6 +12,8 @@ App.Facilities.Facility = class { /** @private */ this._frag = new DocumentFragment(); + /** @private */ + this._facilityNameCaps = capFirstChar(this.facility.name); } /** @@ -21,14 +23,26 @@ App.Facilities.Facility = class { return this._frag; } + /** + * Refreshes the facility onscreen. + * + * @private + * @returns {void} + */ + refresh() { + this._facilityNameCaps = capFirstChar(this.facility.name); + + this._frag = this.render(); + } + /** * Sets up the intro scene. * - * @param {HTMLDivElement} div + * @param {() => HTMLDivElement} div * @returns {this} */ intro(div) { - this._frag.append(div); + this._frag.append(div()); return this; } @@ -36,11 +50,11 @@ App.Facilities.Facility = class { /** * Handles facility expansion. * - * @param {HTMLDivElement} div + * @param {() => HTMLDivElement} div * @returns {this} */ expand(div) { - this._frag.append(div); + this._frag.append(div()); return this; } @@ -48,11 +62,11 @@ App.Facilities.Facility = class { /** * Handles any upgrades the player can purchase. * - * @param {HTMLDivElement} div + * @param {() => HTMLDivElement} div * @returns {this} */ upgrades(div) { - this._frag.append(div); + this._frag.append(div()); return this; } @@ -60,11 +74,11 @@ App.Facilities.Facility = class { /** * Handles any rules that can be set. * - * @param {HTMLDivElement} div + * @param {() => HTMLDivElement} div * @returns {this} */ rules(div) { - this._frag.append(div); + this._frag.append(div()); return this; } @@ -72,11 +86,11 @@ App.Facilities.Facility = class { /** * Displays a list of slaves that can be assigned and removed. * - * @param {HTMLDivElement} div + * @param {() => HTMLDivElement} div * @returns {this} */ slaves(div) { - this._frag.append(div); + this._frag.append(div()); return this; } @@ -87,7 +101,7 @@ App.Facilities.Facility = class { * @returns {this} */ rename() { - this._frag.append(App.Facilities.rename(this.facility)); + this._frag.append(App.Facilities.rename(this.facility, () => this.refresh())); return this; } diff --git a/src/facilities/clinic/clinic.js b/src/facilities/clinic/clinic.js index d00f9678371..608e614e480 100644 --- a/src/facilities/clinic/clinic.js +++ b/src/facilities/clinic/clinic.js @@ -17,11 +17,12 @@ App.Facilities.Clinic.clinic = function() { V.returnTo = "Clinic"; V.encyclopedia = "Clinic"; - clinic.intro(intro()) - .expand(expand()) - .upgrades(upgrades()) - .rules(rules()) - .slaves(slaves()) + clinic + .intro(intro) + .expand(expand) + .upgrades(upgrades) + .rules(rules) + .slaves(slaves) .rename(); return clinic.render(); diff --git a/src/facilities/utils.js b/src/facilities/utils.js index 1cc245bb051..580e56e1a5a 100644 --- a/src/facilities/utils.js +++ b/src/facilities/utils.js @@ -6,8 +6,8 @@ * @param {function():void} [handler] Any custom function to be run upon entering a new name. */ App.Facilities.rename = function rename(facility, handler) { - const renameDiv = App.UI.DOM.makeElement("div", `Rename ${facility.name}: `, ["facility-rename"]); - const renameNote = App.UI.DOM.makeElement("span", ` Use a noun or similar short phrase`, ["note"]); + const renameDiv = App.UI.DOM.makeElement("div", `Rename ${facility.name}: `, ['margin-top']); + const renameNote = App.UI.DOM.makeElement("span", ` Use a noun or similar short phrase`, ['note']); renameDiv.appendChild(App.UI.DOM.makeTextBox(facility.name, newName => { facility.name = newName; -- GitLab