From 45174442fa9379c7cd14d778131822498bb5ee9f Mon Sep 17 00:00:00 2001 From: Arkerthan <arkerthan@gmail.com> Date: Thu, 21 May 2020 11:23:24 +0200 Subject: [PATCH] Add occupancy report to facility framework --- src/004-base/facility.js | 11 ++++ src/facilities/arcade/arcadeFramework.js | 2 +- src/facilities/armory/armoryFramework.js | 15 ++++-- src/facilities/club/clubFramework.js | 2 +- .../headGirlSuite/headGirlSuiteFramework.js | 16 ++++-- .../incubator/incubatorFramework.js | 2 +- src/facilities/nursery/nurseryFramework.js | 7 +++ src/facilities/pit/pitFramework.js | 5 ++ .../schoolroom/schoolroomFramework.js | 2 +- src/facilities/spa/spaFramework.js | 2 +- src/gui/quicklinks.js | 52 ++++++------------- 11 files changed, 70 insertions(+), 46 deletions(-) diff --git a/src/004-base/facility.js b/src/004-base/facility.js index 6c5c4b92124..6348f7d78f1 100644 --- a/src/004-base/facility.js +++ b/src/004-base/facility.js @@ -522,6 +522,17 @@ App.Entity.Facilities.Facility = class { return res; } + /** + * @param {boolean} long + * @returns {string} + */ + occupancyReport(long) { + 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" : ""})`; + } + /** * @protected * @param {string} jobName diff --git a/src/facilities/arcade/arcadeFramework.js b/src/facilities/arcade/arcadeFramework.js index 961d529eb86..58f5d63338c 100644 --- a/src/facilities/arcade/arcadeFramework.js +++ b/src/facilities/arcade/arcadeFramework.js @@ -3,7 +3,7 @@ App.Data.Facilities.arcade = { genericName: null, jobs: { assignee: { - position: "whore", + position: "inmate", assignment: Job.ARCADE, publicSexUse: true, fuckdollAccepted: true, diff --git a/src/facilities/armory/armoryFramework.js b/src/facilities/armory/armoryFramework.js index 2f866ee1672..c38797f641f 100644 --- a/src/facilities/armory/armoryFramework.js +++ b/src/facilities/armory/armoryFramework.js @@ -21,6 +21,15 @@ App.Data.Facilities.armory = { } }; -App.Entity.facilities.armory = new App.Entity.Facilities.Facility( - 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(); diff --git a/src/facilities/club/clubFramework.js b/src/facilities/club/clubFramework.js index 02638c99d13..3d25fd0af3b 100644 --- a/src/facilities/club/clubFramework.js +++ b/src/facilities/club/clubFramework.js @@ -3,7 +3,7 @@ App.Data.Facilities.club = { genericName: null, jobs: { slut: { - position: "Slut", + position: "slut", assignment: Job.CLUB, publicSexUse: true, fuckdollAccepted: false, diff --git a/src/facilities/headGirlSuite/headGirlSuiteFramework.js b/src/facilities/headGirlSuite/headGirlSuiteFramework.js index a980f8a700c..6f0c0f246b3 100644 --- a/src/facilities/headGirlSuite/headGirlSuiteFramework.js +++ b/src/facilities/headGirlSuite/headGirlSuiteFramework.js @@ -33,6 +33,16 @@ App.Data.Facilities.headGirlSuite = { } }; -App.Entity.facilities.headGirlSuite = new App.Entity.Facilities.SingleJobFacility( - App.Data.Facilities.headGirlSuite -); +App.Entity.Facilities.HeadGirlSuite = class extends App.Entity.Facilities.SingleJobFacility { + constructor() { + super(App.Data.Facilities.headGirlSuite); + } + + /** @override */ + occupancyReport(long) { + return this.manager.currentEmployee ? `(HG${ + this.hostedSlaves ? long ? " and slave" : ", 1" : ""})` : ""; + } +}; + +App.Entity.facilities.headGirlSuite = new App.Entity.Facilities.HeadGirlSuite(); diff --git a/src/facilities/incubator/incubatorFramework.js b/src/facilities/incubator/incubatorFramework.js index a425efb8c58..bf1867fa54d 100644 --- a/src/facilities/incubator/incubatorFramework.js +++ b/src/facilities/incubator/incubatorFramework.js @@ -3,7 +3,7 @@ App.Data.Facilities.incubator = { genericName: null, jobs: { tank: { - position: "Tank", + position: "tank", assignment: Job.TANK, publicSexUse: false, fuckdollAccepted: false diff --git a/src/facilities/nursery/nurseryFramework.js b/src/facilities/nursery/nurseryFramework.js index 2403edffab0..2c7ed603499 100644 --- a/src/facilities/nursery/nurseryFramework.js +++ b/src/facilities/nursery/nurseryFramework.js @@ -60,6 +60,13 @@ App.Entity.Facilities.Nursery = class extends App.Entity.Facilities.SingleJobFac // get capacity() { // return State.Variables.nurseryNannies; // } + + /** @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" : ""}`; + } }; App.Entity.facilities.nursery = new App.Entity.Facilities.Nursery(); diff --git a/src/facilities/pit/pitFramework.js b/src/facilities/pit/pitFramework.js index bac95c22fe1..b68554b2a0a 100644 --- a/src/facilities/pit/pitFramework.js +++ b/src/facilities/pit/pitFramework.js @@ -45,6 +45,11 @@ App.Entity.Facilities.Pit = class extends App.Entity.Facilities.SingleJobFacilit get capacity() { return super.capacity > 0 ? Number.MAX_VALUE : 0; } + + /** @override */ + occupancyReport(long) { + return `(${this.hostedSlaves}${long ? ` ${this.job().desc.position}s` : ""})`; + } }; App.Entity.facilities.pit = new App.Entity.Facilities.Pit(); diff --git a/src/facilities/schoolroom/schoolroomFramework.js b/src/facilities/schoolroom/schoolroomFramework.js index 04b487df197..0676a003f17 100644 --- a/src/facilities/schoolroom/schoolroomFramework.js +++ b/src/facilities/schoolroom/schoolroomFramework.js @@ -3,7 +3,7 @@ App.Data.Facilities.schoolroom = { genericName: null, jobs: { student: { - position: "", + position: "student", assignment: Job.SCHOOL, publicSexUse: false, fuckdollAccepted: false, diff --git a/src/facilities/spa/spaFramework.js b/src/facilities/spa/spaFramework.js index 2375a1bde62..475e5f10aa2 100644 --- a/src/facilities/spa/spaFramework.js +++ b/src/facilities/spa/spaFramework.js @@ -3,7 +3,7 @@ App.Data.Facilities.spa = { genericName: null, jobs: { assignee: { - position: "", + position: "bather", assignment: Job.SPA, publicSexUse: false, fuckdollAccepted: false, diff --git a/src/gui/quicklinks.js b/src/gui/quicklinks.js index 0ca0a49f59e..9b8d71fbbf3 100644 --- a/src/gui/quicklinks.js +++ b/src/gui/quicklinks.js @@ -147,42 +147,24 @@ App.UI.quickMenu = (function() { }); // extra information behind the link, is a function + const f = App.Entity.facilities; const extraInfo = cleanPassageMapping({ - Arcade: () => `(${App.Entity.facilities.arcade.employeesIDs().size}/${V.arcade}${ - V.abbreviateSidebar === 2 ? " inmates" : ""})`, - "BG Select": () => V.Bodyguard !== 0 ? "(BG)" : "", - Brothel: () => `(${App.Entity.facilities.brothel.employeesIDs().size}/${V.brothel}${ - V.abbreviateSidebar === 2 ? ` whores${V.Madam ? ", madam" : ""}` : V.Madam ? ", L" : ""})`, - Cellblock: () => `(${App.Entity.facilities.cellblock.employeesIDs().size}/${V.cellblock}${ - V.abbreviateSidebar === 2 ? ` prisoners${V.Wardeness ? ", wardeness" : ""}` : V.Wardeness ? ", L" : ""})`, - Clinic: () => `(${App.Entity.facilities.clinic.employeesIDs().size}/${V.clinic}${ - V.abbreviateSidebar === 2 ? ` patients${V.Nurse ? ", nurse" : ""}` : V.Nurse ? ", L" : ""})`, - Club: () => `(${App.Entity.facilities.club.employeesIDs().size}/${V.brothel}${ - V.abbreviateSidebar === 2 ? ` sluts${V.DJ ? ", DJ" : ""}` : V.DJ ? ", L" : ""})`, - Dairy: () => { - const SCapT9 = V.bioreactorsXY + V.bioreactorsXX + V.bioreactorsHerm + V.bioreactorsBarren; - return `(${App.Entity.facilities.dairy.employeesIDs().size}${SCapT9 ? `+${SCapT9}` : ""}/${V.dairy}${ - V.abbreviateSidebar === 2 ? ` cows${V.Milkmaid ? ", milkmaid" : ""}` - : V.Milkmaid ? ", L" : ""}`; - }, - Farmyard: () => `(${App.Entity.facilities.farmyard.employeesIDs().size}/${V.farmyard}${ - V.abbreviateSidebar === 2 ? ` farmhands${V.Farmer ? ", farmer" : ""}` : V.Farmer ? ", L" : ""})`, - "Head Girl Suite": () => V.HeadGirl !== 0 ? `(HG${ - App.Entity.facilities.headGirlSuite.employeesIDs().size ? - V.abbreviateSidebar === 2 ? " and slave" : ", 1" : ""})` : "", - Incubator: () => `(${V.incubatorSlaves}/${V.incubator}${V.abbreviateSidebar === 2 ? " slaves" : ""})`, - "Master Suite": () => `(${App.Entity.facilities.masterSuite.employeesIDs().size}/${V.masterSuite}${ - V.abbreviateSidebar === 2 ? ` fucktoys${V.Concubine ? ", concubine" : ""}` : V.Concubine ? ", L" : ""})`, - Nursery: () => V.abbreviateSidebar === 2 - ? `(${V.nurseryBabies}/${V.nursery} babies, ${App.Entity.facilities.nursery.employeesIDs().size}/${V.nurseryNannies} nannies${V.Matron ? ", attendant" : ""}` - : `(${V.nurseryBabies}/${V.nursery}, ${App.Entity.facilities.nursery.employeesIDs().size}/${V.nurseryNannies}${V.Matron ? ", L" : ""}`, - Pit: () => `(${V.fighterIDs.length}${V.abbreviateSidebar === 2 ? " combatants" : ""}`, - Schoolroom: () => `(${App.Entity.facilities.schoolroom.employeesIDs().size}/${V.schoolroom}${ - V.abbreviateSidebar === 2 ? ` students${V.Schoolteacher ? ", schoolteacher" : ""}` : V.Schoolteacher ? ", L" : ""})`, - "Servants' Quarters": () => `(${App.Entity.facilities.servantsQuarters.employeesIDs().size}/${V.servantsQuarters}${ - V.abbreviateSidebar === 2 ? ` servants${V.Stewardess ? ", stewardess" : ""}` : V.Stewardess ? ", L" : ""})`, - Spa: () => `(${App.Entity.facilities.spa.employeesIDs().size}/${V.spa}${ - V.abbreviateSidebar === 2 ? ` bathing${V.Attendant ? ", attendant" : ""}` : V.Attendant ? ", L" : ""})`, + 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), }); // true shows a notification symbol -- GitLab