diff --git a/css/facilities/facilities.css b/css/facilities/facilities.css index a875aba917659b1cc81174dbb35aa55b3ba859d2..f68e38b8f973e9495eff9010eab1e07f6eaf2b57 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 a2fbd67b9e6d4905f46176835874068af169da01..c85cdf96d805c0fa53cc3c39e2b137ca66f97940 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 d00f9678371c1e588003e9fbb81638cae99e8e2b..608e614e480bbe824c48bf6d7c51376c22ada4ec 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 1cc245bb0519e05eefa5696cc1523687a6b4488a..580e56e1a5aca1579fb2aff957a705b78470a974 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;