From 1ca8e2d449275937ca09c987927f2afc06e96e39 Mon Sep 17 00:00:00 2001 From: Arkerthan <arkerthan@gmail.com> Date: Thu, 21 May 2020 16:36:34 +0200 Subject: [PATCH] improve occupancyReport() --- src/004-base/facility.js | 15 +++++-- src/facilities/armory/armoryFramework.js | 14 +----- .../headGirlSuite/headGirlSuiteFramework.js | 13 +++++- .../masterSuite/masterSuiteFramework.js | 1 + src/facilities/nursery/nurseryFramework.js | 4 +- src/facilities/pit/pitFramework.js | 2 +- src/gui/quicklinks.js | 44 ++++++++++++------- 7 files changed, 57 insertions(+), 36 deletions(-) diff --git a/src/004-base/facility.js b/src/004-base/facility.js index 6348f7d78f1..f5bc2c16b88 100644 --- a/src/004-base/facility.js +++ b/src/004-base/facility.js @@ -231,6 +231,11 @@ App.Entity.Facilities.ManagingJob = class extends App.Entity.Facilities.Job { get _facilityHasFreeSpace() { return true; } + + /** @returns {string} */ + get positionAbbreviation() { + return this.desc.positionAbbreviation || "L"; + } }; App.Entity.Facilities.Facility = class { @@ -527,10 +532,14 @@ App.Entity.Facilities.Facility = class { * @returns {string} */ occupancyReport(long) { + if (this.jobs.length === 0) { + return this.manager && this.manager.currentEmployee ? this.manager.positionAbbreviation : ""; + } const nonEmployees = this.nonEmployeeOccupantsCount; - return `(${this.hostedSlaves}${nonEmployees ? `+${nonEmployees}` : ""}/${this.capacity}${long - ? ` ${this.job().desc.position}s${this.manager && this.manager.currentEmployee ? `, ${this.manager.desc.position}` : ""}` - : this.manager && this.manager.currentEmployee ? ", L" : ""})`; + const managerStr = this.manager && this.manager.currentEmployee ? ( + long ? `, ${this.manager.desc.position}` : `, ${this.manager.positionAbbreviation}`) : ""; + const slavesStr = long ? ` ${this.job().desc.position}${this.capacity !== 1 ? 's' : ''}` : ""; + return `${this.hostedSlaves}${nonEmployees ? `+${nonEmployees}` : ""}/${this.capacity}${slavesStr}${managerStr}`; } /** diff --git a/src/facilities/armory/armoryFramework.js b/src/facilities/armory/armoryFramework.js index c38797f641f..a219e606db7 100644 --- a/src/facilities/armory/armoryFramework.js +++ b/src/facilities/armory/armoryFramework.js @@ -5,6 +5,7 @@ App.Data.Facilities.armory = { defaultJob: null, manager: { position: "bodyguard", + positionAbbreviation: "BG", assignment: Job.BODYGUARD, careers: App.Data.misc.bodyguardCareers, skill: "bodyguard", @@ -21,15 +22,4 @@ App.Data.Facilities.armory = { } }; -App.Entity.Facilities.Armory = class extends App.Entity.Facilities.Facility { - constructor() { - super(App.Data.Facilities.armory); - } - - /** @override */ - occupancyReport(long) { - return this.manager.currentEmployee ? "(BG)" : ""; - } -}; - -App.Entity.facilities.armory = new App.Entity.Facilities.Armory(); +App.Entity.facilities.armory = new App.Entity.Facilities.Facility(App.Data.Facilities.armory); diff --git a/src/facilities/headGirlSuite/headGirlSuiteFramework.js b/src/facilities/headGirlSuite/headGirlSuiteFramework.js index 6f0c0f246b3..6a059b0541c 100644 --- a/src/facilities/headGirlSuite/headGirlSuiteFramework.js +++ b/src/facilities/headGirlSuite/headGirlSuiteFramework.js @@ -38,10 +38,19 @@ App.Entity.Facilities.HeadGirlSuite = class extends App.Entity.Facilities.Single super(App.Data.Facilities.headGirlSuite); } + /** @override */ + get UIName() { + const nameCaps = this.nameCaps; + return nameCaps === "The Head Girl Suite" ? "Head Girl Suite" : nameCaps; + } + /** @override */ occupancyReport(long) { - return this.manager.currentEmployee ? `(HG${ - this.hostedSlaves ? long ? " and slave" : ", 1" : ""})` : ""; + return this.manager.currentEmployee + ? `HG${this.hostedSlaves ? long + ? ` and ${getPronouns(this.manager.currentEmployee).his} slave` + : ", 1" : ""}` + : ""; } }; diff --git a/src/facilities/masterSuite/masterSuiteFramework.js b/src/facilities/masterSuite/masterSuiteFramework.js index e94886e242a..be55b6008cd 100644 --- a/src/facilities/masterSuite/masterSuiteFramework.js +++ b/src/facilities/masterSuite/masterSuiteFramework.js @@ -17,6 +17,7 @@ App.Data.Facilities.masterSuite = { defaultJob: "fucktoy", manager: { position: "concubine", + positionAbbreviation: "C", assignment: Job.CONCUBINE, careers: [], skill: null, diff --git a/src/facilities/nursery/nurseryFramework.js b/src/facilities/nursery/nurseryFramework.js index 2c7ed603499..61e2a148d3f 100644 --- a/src/facilities/nursery/nurseryFramework.js +++ b/src/facilities/nursery/nurseryFramework.js @@ -64,8 +64,8 @@ App.Entity.Facilities.Nursery = class extends App.Entity.Facilities.SingleJobFac /** @override */ occupancyReport(long) { return long - ? `(${V.nurseryBabies}/${V.nursery} babies, ${this.nursery.hostedSlaves}/${V.nurseryNannies} nannies${this.manager.currentEmployee ? ", attendant" : ""}` - : `(${V.nurseryBabies}/${V.nursery}, ${this.nursery.hostedSlaves}/${V.nurseryNannies}${this.manager.currentEmployee ? ", L" : ""}`; + ? `${V.nurseryBabies}/${V.nursery} babies, ${this.nursery.hostedSlaves}/${V.nurseryNannies} nannies${this.manager.currentEmployee ? `, ${this.manager.desc.position}` : ""}` + : `${V.nurseryBabies}/${V.nursery}, ${this.nursery.hostedSlaves}/${V.nurseryNannies}${this.manager.currentEmployee ? ", L" : ""}`; } }; diff --git a/src/facilities/pit/pitFramework.js b/src/facilities/pit/pitFramework.js index b68554b2a0a..df3b2e7fda0 100644 --- a/src/facilities/pit/pitFramework.js +++ b/src/facilities/pit/pitFramework.js @@ -48,7 +48,7 @@ App.Entity.Facilities.Pit = class extends App.Entity.Facilities.SingleJobFacilit /** @override */ occupancyReport(long) { - return `(${this.hostedSlaves}${long ? ` ${this.job().desc.position}s` : ""})`; + return `${this.hostedSlaves}${long ? ` ${this.job().desc.position}s` : ""}`; } }; diff --git a/src/gui/quicklinks.js b/src/gui/quicklinks.js index 9b8d71fbbf3..5493e5cf969 100644 --- a/src/gui/quicklinks.js +++ b/src/gui/quicklinks.js @@ -149,22 +149,22 @@ App.UI.quickMenu = (function() { // extra information behind the link, is a function const f = App.Entity.facilities; const extraInfo = cleanPassageMapping({ - Arcade: () => f.arcade .occupancyReport(V.abbreviateSidebar === 2), - "BG Select": () => f.armory .occupancyReport(V.abbreviateSidebar === 2), - Brothel: () => f.brothel .occupancyReport(V.abbreviateSidebar === 2), - Cellblock: () => f.cellblock .occupancyReport(V.abbreviateSidebar === 2), - Clinic: () => f.clinic .occupancyReport(V.abbreviateSidebar === 2), - Club: () => f.club .occupancyReport(V.abbreviateSidebar === 2), - Dairy: () => f.dairy .occupancyReport(V.abbreviateSidebar === 2), - Farmyard: () => f.farmyard .occupancyReport(V.abbreviateSidebar === 2), - "Head Girl Suite": () => f.headGirlSuite.occupancyReport(V.abbreviateSidebar === 2), - Incubator: () => f.incubator .occupancyReport(V.abbreviateSidebar === 2), - "Master Suite": () => f.masterSuite .occupancyReport(V.abbreviateSidebar === 2), - Nursery: () => f.nursery .occupancyReport(V.abbreviateSidebar === 2), - Pit: () => f.pit .occupancyReport(V.abbreviateSidebar === 2), - Schoolroom: () => f.schoolroom .occupancyReport(V.abbreviateSidebar === 2), - "Servants' Quarters": () => f.servantsQuarters.occupancyReport(V.abbreviateSidebar === 2), - Spa: () => f.spa .occupancyReport(V.abbreviateSidebar === 2), + Arcade: () => occupancy(f.arcade), + "BG Select": () => occupancy(f.armory), + Brothel: () => occupancy(f.brothel), + Cellblock: () => occupancy(f.cellblock), + Clinic: () => occupancy(f.clinic), + Club: () => occupancy(f.club), + Dairy: () => occupancy(f.dairy), + Farmyard: () => occupancy(f.farmyard), + "Head Girl Suite": () => occupancy(f.headGirlSuite), + Incubator: () => occupancy(f.incubator), + "Master Suite": () => occupancy(f.masterSuite), + Nursery: () => occupancy(f.nursery), + Pit: () => occupancy(f.pit), + Schoolroom: () => occupancy(f.schoolroom), + "Servants' Quarters": () => occupancy(f.servantsQuarters), + Spa: () => occupancy(f.spa), }); // true shows a notification symbol @@ -475,6 +475,18 @@ App.UI.quickMenu = (function() { } } + /** + * @param {App.Entity.Facilities.Facility} facility + * @returns {string} + */ + function occupancy(facility) { + const desc = facility.occupancyReport(V.abbreviateSidebar === 2); + if (desc === "") { + return ""; + } + return `(${desc})`; + } + /** * Cleans out all mappings that are not contained in jumpTo and therefore not considered safe. * -- GitLab