diff --git a/src/004-base/facility.js b/src/004-base/facility.js index f5bc2c16b88d8e7d20cda830c9ee74678b4d6de9..be67be3c9701de0b13ca434cd07eb2028bb3d4c3 100644 --- a/src/004-base/facility.js +++ b/src/004-base/facility.js @@ -279,11 +279,13 @@ App.Entity.Facilities.Facility = class { return res !== undefined ? res : 'the ' + this.genericName; } + /** @returns {string} */ get nameCaps() { const res = V[this.desc.baseName + "NameCaps"]; return res ? res : this.name.replace("the ", "The "); } + /** @returns {string} */ get UIName() { const nameCaps = this.nameCaps; return nameCaps === "The " + this.genericName ? this.genericName : nameCaps; diff --git a/src/arcologyBuilding/base.js b/src/arcologyBuilding/base.js index 8f1e33500bb6a3c598bf8d6eb0cf54eaed64ddc6..4100bda35e4855c8f9136b4c983256d6a679fea3 100644 --- a/src/arcologyBuilding/base.js +++ b/src/arcologyBuilding/base.js @@ -58,18 +58,18 @@ App.Arcology.sectionOrder = ["fountain", "penthouse", "spire", "shops", "ravine- * @param {App.Entity.Facilities.Facility} facility * @param {string} [passageName] * @param {string} [statsStr] - * @return {Node} + * @returns {Node} */ App.Arcology.facilityCellContent = function(facility, passageName, statsStr) { const res = document.createDocumentFragment(); res.append(App.UI.DOM.passageLink(facility.UIName, passageName || facility.genericName)); - const stats = document.createElement("span"); - stats.style.whiteSpace = "nowrap"; - stats.textContent = statsStr ? statsStr : ` (${facility.employeesIDs().size}/${facility.capacity})`; - if (facility.manager && facility.manager.currentEmployee) { - stats.textContent += ", L"; + const report = facility.occupancyReport(false); + if (report !== "") { + const stats = document.createElement("span"); + stats.style.whiteSpace = "nowrap"; + stats.textContent = ` (${report})`; + res.append(stats); } - res.append(stats); return res; }; diff --git a/src/arcologyBuilding/manufacturing.js b/src/arcologyBuilding/manufacturing.js index 2130b2e24cc081d3c6ac92f4c0e42634cdaa5bbe..82b17cfa7871d3e633f7a21330118da2e455dbdb 100644 --- a/src/arcologyBuilding/manufacturing.js +++ b/src/arcologyBuilding/manufacturing.js @@ -49,8 +49,7 @@ App.Arcology.Cell.Manufacturing = class extends App.Arcology.Cell.BaseCell { */ cellContent(path) { if (this.type === "Dairy") { - return App.Arcology.facilityCellContent(App.Entity.facilities.dairy, null, - ` (${App.Entity.facilities.dairy.employeesIDs().size}${V.bioreactorsXY + V.bioreactorsXX + V.bioreactorsHerm + V.bioreactorsBarren > 0 ? "+" : ""}/${App.Entity.facilities.dairy.capacity})`); + return App.Arcology.facilityCellContent(App.Entity.facilities.dairy); } if (this.type === "Farmyard") { return App.Arcology.facilityCellContent(App.Entity.facilities.farmyard); diff --git a/src/arcologyBuilding/markets.js b/src/arcologyBuilding/markets.js index 0210f6ff8b62d4b6cb56881d2e9158a8918b613a..e93f11c3b8c68b1db212f02c80389e2ca1b9ca24 100644 --- a/src/arcologyBuilding/markets.js +++ b/src/arcologyBuilding/markets.js @@ -41,17 +41,11 @@ App.Arcology.Cell.Market = class extends App.Arcology.Cell.BaseCell { * @returns {Node} */ cellContent(path) { - if (this.type === "Arcade") { - return App.Arcology.facilityCellContent(App.Entity.facilities.arcade); - } - if (this.type === "Pit") { - const pit = App.Entity.facilities.pit; - const fragment = document.createDocumentFragment(); - fragment.append(App.UI.DOM.passageLink(pit.UIName, "Pit"), - `(${pit.employeesIDs().size})`); - return fragment; - } switch (this.type) { + case "Arcade": + return App.Arcology.facilityCellContent(App.Entity.facilities.arcade); + case "Pit": + return App.Arcology.facilityCellContent(App.Entity.facilities.pit); case "Markets": return App.Arcology.getCellLink(path, "Markets"); case "Transport Hub": diff --git a/src/arcologyBuilding/penthouse.js b/src/arcologyBuilding/penthouse.js index 945dad029aad83ee2d3f5043e0de247dfc0370b0..455991f5b298c7850cfd389da9386e59e5d3998e 100644 --- a/src/arcologyBuilding/penthouse.js +++ b/src/arcologyBuilding/penthouse.js @@ -41,46 +41,24 @@ App.Arcology.Cell.Penthouse = class extends App.Arcology.Cell.BaseCell { /** * @param {App.Entity.Facilities.Facility} facility * @param {string} [passageName] - * @param {string} [leaderAbbr] */ - function addFacility(facility, passageName, leaderAbbr = 'L') { + function addFacility(facility, passageName) { if (facility.established) { - wrapper.append(createFacilityDiv(App.UI.DOM.passageLink(facility.UIName, passageName || facility.genericName), - `(${facility.employeesIDs().size}/${facility.capacity}${facility.manager.employeesIDs().size > 0 ? `, ${leaderAbbr}` : ""})`)); - } - } - - addFacility(fcs.masterSuite, fcs.masterSuite.genericName, "C"); - - if (fcs.headGirlSuite.established) { - const link = App.UI.DOM.passageLink(fcs.headGirlSuite.UIName, "Head Girl Suite"); - - if (V.HeadGirl !== 0) { - wrapper.append(createFacilityDiv(link, `(HG${fcs.headGirlSuite.employeesIDs().size > 0 ? ", 1" : ""})`)); - } else { - wrapper.append(createFacilityDiv(link)); - } - } - - if (V.dojo > 1) { - const link = App.UI.DOM.passageLink("Armory", "BG Select"); - - if (V.Bodyguard !== 0) { - wrapper.append(createFacilityDiv(link, "BG")); - } else { - wrapper.append(createFacilityDiv(link)); + wrapper.append(createFacilityDiv( + App.UI.DOM.passageLink(facility.UIName, passageName || facility.genericName))); + const report = facility.occupancyReport(false); + if (report !== "") { + wrapper.append(`(${report})`); + } } } + addFacility(fcs.masterSuite); + addFacility(fcs.headGirlSuite, "Head Girl Suite"); + addFacility(fcs.armory, "BG Select"); addFacility(fcs.servantsQuarters); addFacility(fcs.spa); - - if (fcs.nursery.established) { - const n = fcs.nursery; - wrapper.append(createFacilityDiv(App.UI.DOM.passageLink(n.UIName, "Nursery"), - `(${numberWithPluralOne(n.capacity - V.nurseryBabies, "empty room")}, ${n.employeesIDs().size}/${V.nurseryNannies}${V.Matron ? ", L" : ""})`)); - } - + addFacility(fcs.nursery); addFacility(fcs.clinic); addFacility(fcs.schoolroom); addFacility(fcs.cellblock); @@ -119,7 +97,7 @@ App.Arcology.Cell.Penthouse = class extends App.Arcology.Cell.BaseCell { /** * * @param {HTMLElement} link - * @param {(Node|string)[]} content + * @param {(Node|string)} content * @returns {HTMLDivElement} */ function createFacilityDiv(link, ...content) { diff --git a/src/facilities/armory/armoryFramework.js b/src/facilities/armory/armoryFramework.js index a219e606db73243e667199cc4dca544cd9c793fc..ac077b9815b7b0b0617e224f3e181fa685bac713 100644 --- a/src/facilities/armory/armoryFramework.js +++ b/src/facilities/armory/armoryFramework.js @@ -1,6 +1,6 @@ App.Data.Facilities.armory = { baseName: "dojo", - genericName: "armory", + genericName: "Armory", jobs: { }, defaultJob: null, manager: {