diff --git a/src/js/economyJS.js b/src/js/economyJS.js index 5f6184ec92948d559b931c02f12a5e921b1b12f4..d46d72ced258a7bc889551645543eeca98a21eb2 100644 --- a/src/js/economyJS.js +++ b/src/js/economyJS.js @@ -88,6 +88,9 @@ window.CategoryAssociatedGroup = Object.freeze({ 'slaveAssignmentConcubine', 'slaveAssignmentMastersuite' ], + AGENT: [ + 'slaveAssignmentAgent' + ], ARCADE: [ 'arcade', 'slaveAssignmentArcade' diff --git a/src/uncategorized/costsBudget.js b/src/uncategorized/costsBudget.js index 8338b3d079bb502f4c7ee6b505bd202a9f4a9dc5..e71a2af9274d4b90aaec32b5f410042404a3dd8f 100644 --- a/src/uncategorized/costsBudget.js +++ b/src/uncategorized/costsBudget.js @@ -563,205 +563,209 @@ App.UI.Budget.Cost = function() { createSectionHeader("Facilities"); // PENTHOUSE - generateRowShowTotal("Penthouse", "PENTHOUSE"); - generateRowTracking("Rest", "slaveAssignmentRest"); - generateRowTracking("RestVign", "slaveAssignmentRestVign"); - generateRowTracking("Fucktoy", "slaveAssignmentFucktoy"); - generateRowTracking("Classes", "slaveAssignmentClasses"); - generateRowTracking("House", "slaveAssignmentHouse"); - generateRowTracking("HouseVign", "slaveAssignmentHouseVign"); - generateRowTracking("Whore", "slaveAssignmentWhore"); - generateRowTracking("WhoreVign", "slaveAssignmentWhoreVign"); - generateRowTracking("Public", "slaveAssignmentPublic"); - generateRowTracking("PublicVign", "slaveAssignmentPublicVign"); - generateRowTracking("Subordinate", "slaveAssignmentSubordinate"); - generateRowTracking("Milked", "slaveAssignmentMilked"); - generateRowTracking("MilkedVign", "slaveAssignmentMilkedVign"); - generateRowTracking("ExtraMilk", "slaveAssignmentExtraMilk"); - generateRowTracking("ExtraMilkVign", "slaveAssignmentExtraMilkVign"); - generateRowTracking("Gloryhole", "slaveAssignmentGloryhole"); - generateRowTracking("Confinement", "slaveAssignmentConfinement"); + generateRowGroup("Penthouse", "PENTHOUSE"); + generateRowCategory("Rest", "slaveAssignmentRest"); + generateRowCategory("RestVign", "slaveAssignmentRestVign"); + generateRowCategory("Fucktoy", "slaveAssignmentFucktoy"); + generateRowCategory("Classes", "slaveAssignmentClasses"); + generateRowCategory("House", "slaveAssignmentHouse"); + generateRowCategory("HouseVign", "slaveAssignmentHouseVign"); + generateRowCategory("Whore", "slaveAssignmentWhore"); + generateRowCategory("WhoreVign", "slaveAssignmentWhoreVign"); + generateRowCategory("Public", "slaveAssignmentPublic"); + generateRowCategory("PublicVign", "slaveAssignmentPublicVign"); + generateRowCategory("Subordinate", "slaveAssignmentSubordinate"); + generateRowCategory("Milked", "slaveAssignmentMilked"); + generateRowCategory("MilkedVign", "slaveAssignmentMilkedVign"); + generateRowCategory("ExtraMilk", "slaveAssignmentExtraMilk"); + generateRowCategory("ExtraMilkVign", "slaveAssignmentExtraMilkVign"); + generateRowCategory("Gloryhole", "slaveAssignmentGloryhole"); + generateRowCategory("Confinement", "slaveAssignmentConfinement"); // LEADERSHIP ROLES // HEAD GIRL // find passage name for HGSuite - generateRowShowTotal(V.HGSuiteNameCaps, "HEADGIRLSUITE", V.HGSuite, null, V.HGSuiteiIDs.length); - generateRowTracking("Head Girl", "slaveAssignmentHeadgirl"); - generateRowTracking("Head Girl Fucktoys", "slaveAssignmentHeadgirlsuite"); + generateRowGroup(V.HGSuiteNameCaps, "HEADGIRLSUITE", V.HGSuite, null, V.HGSuiteiIDs.length); + generateRowCategory("Head Girl", "slaveAssignmentHeadgirl"); + generateRowCategory("Head Girl Fucktoys", "slaveAssignmentHeadgirlsuite"); // RECRUITER - generateRowShowTotal("Recruiter", "RECRUITER"); - generateRowTracking("Recruiter", "slaveAssignmentRecruiter"); + generateRowGroup("Recruiter", "RECRUITER"); + generateRowCategory("Recruiter", "slaveAssignmentRecruiter"); // BODYGUARD // find passage name for Armory - generateRowShowTotal("Armory", "DOJO", V.dojo, null, null); - generateRowTracking("Bodyguard", "slaveAssignmentBodyguard"); + generateRowGroup("Armory", "DOJO", V.dojo, null, null); + generateRowCategory("Bodyguard", "slaveAssignmentBodyguard"); // CONCUBINE - generateRowShowTotal("Master Suite", "MASTERSUITE", V.masterSuite, "Master Suite", V.MastSiIDs.length); - generateRowTracking("Master Suite Maintenance", "masterSuite"); - generateRowTracking("Master Suite Concubine", "slaveAssignmentConcubine"); - generateRowTracking("Master Suite Fucktoys", "slaveAssignmentMastersuite"); + generateRowGroup("Master Suite", "MASTERSUITE", V.masterSuite, "Master Suite", V.MastSiIDs.length); + generateRowCategory("Master Suite Maintenance", "masterSuite"); + generateRowCategory("Master Suite Concubine", "slaveAssignmentConcubine"); + generateRowCategory("Master Suite Fucktoys", "slaveAssignmentMastersuite"); + + // AGENT + generateRowGroup("Agent", "AGENT"); + generateRowCategory("Agent", "slaveAssignmentAgent"); // ARCADE - generateRowShowTotal(V.arcadeNameCaps, "ARCADE", V.arcade, "Arcade", V.ArcadeiIDs.length); - generateRowTracking("Arcade Maintenance", "arcade"); - generateRowTracking("Arcade Fuckdolls", "slaveAssignmentArcade"); + generateRowGroup(V.arcadeNameCaps, "ARCADE", V.arcade, "Arcade", V.ArcadeiIDs.length); + generateRowCategory("Arcade Maintenance", "arcade"); + generateRowCategory("Arcade Fuckdolls", "slaveAssignmentArcade"); // BROTHEL - generateRowShowTotal(V.brothelNameCaps, "BROTHEL", V.brothel, "Brothel", V.BrothiIDs.length); - generateRowTracking("Brothel Maintenance", "brothel"); - generateRowTracking("Brothel Madam", "slaveAssignmentMadam"); - generateRowTracking("Brothel MadamVign", "slaveAssignmentMadamVign"); - generateRowTracking("Brothel Whore", "slaveAssignmentBrothel"); - generateRowTracking("Brothel WhoreVign", "slaveAssignmentBrothelVign"); - generateRowTracking("Brothel Ads", "brothelAds"); + generateRowGroup(V.brothelNameCaps, "BROTHEL", V.brothel, "Brothel", V.BrothiIDs.length); + generateRowCategory("Brothel Maintenance", "brothel"); + generateRowCategory("Brothel Madam", "slaveAssignmentMadam"); + generateRowCategory("Brothel MadamVign", "slaveAssignmentMadamVign"); + generateRowCategory("Brothel Whore", "slaveAssignmentBrothel"); + generateRowCategory("Brothel WhoreVign", "slaveAssignmentBrothelVign"); + generateRowCategory("Brothel Ads", "brothelAds"); // CELLBLOCK - generateRowShowTotal(V.cellblockNameCaps, "CELLBLOCK", V.cellblock, "Cellblock", V.CellBiIDs.length); - generateRowTracking("Cellblock Maintenance", "cellblock"); - generateRowTracking("Cellblock Warden", "slaveAssignmentWarden"); - generateRowTracking("Cellblock Slaves", "slaveAssignmentCellblock"); + generateRowGroup(V.cellblockNameCaps, "CELLBLOCK", V.cellblock, "Cellblock", V.CellBiIDs.length); + generateRowCategory("Cellblock Maintenance", "cellblock"); + generateRowCategory("Cellblock Warden", "slaveAssignmentWarden"); + generateRowCategory("Cellblock Slaves", "slaveAssignmentCellblock"); // CLUB - generateRowShowTotal(V.clubNameCaps, "CLUB", V.club, "Club", V.ClubiIDs.length); - generateRowTracking("Club Maintenance", "club"); - generateRowTracking("Club DJ", "slaveAssignmentDj"); - generateRowTracking("Club Public", "slaveAssignmentClub"); - generateRowTracking("Club PublicVign", "slaveAssignmentClubVign"); - generateRowTracking("Club Ads", "clubAds"); + generateRowGroup(V.clubNameCaps, "CLUB", V.club, "Club", V.ClubiIDs.length); + generateRowCategory("Club Maintenance", "club"); + generateRowCategory("Club DJ", "slaveAssignmentDj"); + generateRowCategory("Club Public", "slaveAssignmentClub"); + generateRowCategory("Club PublicVign", "slaveAssignmentClubVign"); + generateRowCategory("Club Ads", "clubAds"); // CLINIC - generateRowShowTotal(V.clinicNameCaps, "CLINIC", V.club, "Club", V.ClubiIDs.length); - generateRowTracking("Clinic Maintenance", "clinic"); - generateRowTracking("Clinic Nurse", "slaveAssignmentNurse"); - generateRowTracking("Clinic Slaves", "slaveAssignmentClinic"); + generateRowGroup(V.clinicNameCaps, "CLINIC", V.club, "Club", V.ClubiIDs.length); + generateRowCategory("Clinic Maintenance", "clinic"); + generateRowCategory("Clinic Nurse", "slaveAssignmentNurse"); + generateRowCategory("Clinic Slaves", "slaveAssignmentClinic"); // DAIRY - generateRowShowTotal(V.dairyNameCaps, "DAIRY", V.dairy, "Dairy", V.DairyiIDs.length); - generateRowTracking("Dairy Maintenance", "dairy"); - generateRowTracking("Dairy Milkmaid", "slaveAssignmentMilkmaid"); - generateRowTracking("Dairy Cows", "slaveAssignmentDairy"); - generateRowTracking("Dairy Cows", "slaveAssignmentDairyVign"); + generateRowGroup(V.dairyNameCaps, "DAIRY", V.dairy, "Dairy", V.DairyiIDs.length); + generateRowCategory("Dairy Maintenance", "dairy"); + generateRowCategory("Dairy Milkmaid", "slaveAssignmentMilkmaid"); + generateRowCategory("Dairy Cows", "slaveAssignmentDairy"); + generateRowCategory("Dairy Cows", "slaveAssignmentDairyVign"); // FARMYARD - generateRowShowTotal(V.farmyardNameCaps, "FARMYARD", V.farmyard, "Farmyard", V.FarmyardiIDs.length); - generateRowTracking("Farmyard Maintenance", "farmyard"); - generateRowTracking("Farmyard Farmer", "slaveAssignmentFarmer"); - generateRowTracking("Farmyard Farmhands", "slaveAssignmentFarmyard"); - generateRowTracking("Farmyard FarmhandsVign", "slaveAssignmentFarmyardVign"); + generateRowGroup(V.farmyardNameCaps, "FARMYARD", V.farmyard, "Farmyard", V.FarmyardiIDs.length); + generateRowCategory("Farmyard Maintenance", "farmyard"); + generateRowCategory("Farmyard Farmer", "slaveAssignmentFarmer"); + generateRowCategory("Farmyard Farmhands", "slaveAssignmentFarmyard"); + generateRowCategory("Farmyard FarmhandsVign", "slaveAssignmentFarmyardVign"); // INCUBATOR // TODO: Differentiate between standard upkeep, and slaves in incubator cost. - generateRowShowTotal(V.incubatorNameCaps, "INCUBATOR", V.incubator, "Incubator", V.incubatorSlaves); - generateRowTracking("Incubator Maintenance", "incubator"); + generateRowGroup(V.incubatorNameCaps, "INCUBATOR", V.incubator, "Incubator", V.incubatorSlaves); + generateRowCategory("Incubator Maintenance", "incubator"); // NURSERY - generateRowShowTotal(V.nurseryNameCaps, "NURSERY", V.nursery, "Nursery", V.NurseryiIDs.length); - generateRowTracking("Nursery Maintenance", "nursery"); - generateRowTracking("Nursery Matron", "slaveAssignmentMatron"); - generateRowTracking("Nursery Nannies", "slaveAssignmentNursery"); - generateRowTracking("Nursery NanniesVign", "slaveAssignmentNurseryVign"); + generateRowGroup(V.nurseryNameCaps, "NURSERY", V.nursery, "Nursery", V.NurseryiIDs.length); + generateRowCategory("Nursery Maintenance", "nursery"); + generateRowCategory("Nursery Matron", "slaveAssignmentMatron"); + generateRowCategory("Nursery Nannies", "slaveAssignmentNursery"); + generateRowCategory("Nursery NanniesVign", "slaveAssignmentNurseryVign"); // PIT - generateRowShowTotal(V.pitNameCaps, "PIT", V.pit, "Pit", V.fighterIDs.length); - generateRowTracking("Pit Maintenance", "pit"); + generateRowGroup(V.pitNameCaps, "PIT", V.pit, "Pit", V.fighterIDs.length); + generateRowCategory("Pit Maintenance", "pit"); // PROSTHETIC LAB - generateRowShowTotal("Prosthetic Lab", "PROSTHETICLAB", V.researchLab.level, "Prosthetic Lab", null); - generateRowTracking("Prosthetic Lab Maintenance", "lab"); - generateRowTracking("Prostethic Lab Research", "labResearch"); - generateRowTracking("Prostethic Lab Scientists", "labScientists"); - generateRowTracking("Prostethic Lab Menials", "labMenials"); + generateRowGroup("Prosthetic Lab", "PROSTHETICLAB", V.researchLab.level, "Prosthetic Lab", null); + generateRowCategory("Prosthetic Lab Maintenance", "lab"); + generateRowCategory("Prostethic Lab Research", "labResearch"); + generateRowCategory("Prostethic Lab Scientists", "labScientists"); + generateRowCategory("Prostethic Lab Menials", "labMenials"); // SCHOOLROOM - generateRowShowTotal(V.schoolroomNameCaps, "SCHOOLROOM", V.schoolroom, "Schoolroom", V.SchlRiIDs.length); - generateRowTracking("Schoolroom Maintenance", "school"); - generateRowTracking("Schoolroom Teacher", "slaveAssignmentTeacher"); - generateRowTracking("Schoolroom Students", "slaveAssignmentSchool"); + generateRowGroup(V.schoolroomNameCaps, "SCHOOLROOM", V.schoolroom, "Schoolroom", V.SchlRiIDs.length); + generateRowCategory("Schoolroom Maintenance", "school"); + generateRowCategory("Schoolroom Teacher", "slaveAssignmentTeacher"); + generateRowCategory("Schoolroom Students", "slaveAssignmentSchool"); // SERVANTS' QUARTERS - generateRowShowTotal(V.servantsQuartersNameCaps, "SERVANTSQUARTERS", V.servantsQuarters, "Servants' Quarters", V.ServQiIDs.length); - generateRowTracking("Servants' Quarters Maintenance", "servantsQuarters"); - generateRowTracking("Servants' Quarters Steward", "slaveAssignmentSteward"); - generateRowTracking("Servants' Quarters Servants", "slaveAssignmentQuarter"); - generateRowTracking("Servants' Quarters ServantsVign", "slaveAssignmentQuarterVign"); + generateRowGroup(V.servantsQuartersNameCaps, "SERVANTSQUARTERS", V.servantsQuarters, "Servants' Quarters", V.ServQiIDs.length); + generateRowCategory("Servants' Quarters Maintenance", "servantsQuarters"); + generateRowCategory("Servants' Quarters Steward", "slaveAssignmentSteward"); + generateRowCategory("Servants' Quarters Servants", "slaveAssignmentQuarter"); + generateRowCategory("Servants' Quarters ServantsVign", "slaveAssignmentQuarterVign"); // SPA - generateRowShowTotal(V.spaNameCaps, "SPA", V.spa, "Spa", V.SpaiIDs.length); - generateRowTracking("Spa Maintenance", "spa"); - generateRowTracking("Spa Attendant", "slaveAssignmentAttendant"); - generateRowTracking("Spa Slaves", "slaveAssignmentSpa"); + generateRowGroup(V.spaNameCaps, "SPA", V.spa, "Spa", V.SpaiIDs.length); + generateRowCategory("Spa Maintenance", "spa"); + generateRowCategory("Spa Attendant", "slaveAssignmentAttendant"); + generateRowCategory("Spa Slaves", "slaveAssignmentSpa"); // HEADER: ARCOLOGY createSectionHeader("Arcology"); // SLAVES - generateRowShowTotal("Miscellaneous Slave Income and Expenses", "SLAVES"); - generateRowTracking("Slave Porn", "porn"); - generateRowTracking("Slave Modifcations", "slaveMod"); - generateRowTracking("Slave Surgery", "slaveSurgery"); - generateRowTracking("Slave Birhting", "birth"); + generateRowGroup("Miscellaneous Slave Income and Expenses", "SLAVES"); + generateRowCategory("Slave Porn", "porn"); + generateRowCategory("Slave Modifcations", "slaveMod"); + generateRowCategory("Slave Surgery", "slaveSurgery"); + generateRowCategory("Slave Birhting", "birth"); // MENIAL LABOR // TODO: Differentiate between selling and weekly income for menial slaves. - generateRowShowTotal("Menial Labor", "LABOR"); - generateRowTracking("Menials: Slaves", "menialTrades"); - generateRowTracking("Menials: Fuckdolls", "fuckdolls"); - generateRowTracking("Menials: Bioreactors", "menialBioreactors"); + generateRowGroup("Menial Labor", "LABOR"); + generateRowCategory("Menials: Slaves", "menialTrades"); + generateRowCategory("Menials: Fuckdolls", "fuckdolls"); + generateRowCategory("Menials: Bioreactors", "menialBioreactors"); // FLIPPING - generateRowShowTotal("Flipping", "FLIPPING"); - generateRowTracking("Slave Transfer", "slaveTransfer"); + generateRowGroup("Flipping", "FLIPPING"); + generateRowCategory("Slave Transfer", "slaveTransfer"); // Menial Transfer // Fuckdoll Transfer // Bioreactor transfer - generateRowTracking("Scientist Transfer", "labScientistsTransfer"); - generateRowTracking("Assistant: Menials", "menialTransfer"); - generateRowTracking("Assistant: Fuckdolls", "fuckdollsTransfer"); - generateRowTracking("Assistant: Bioreactors", "menialBioreactorsTransfer"); - generateRowTracking("Slave Babies", "babyTransfer"); + generateRowCategory("Scientist Transfer", "labScientistsTransfer"); + generateRowCategory("Assistant: Menials", "menialTransfer"); + generateRowCategory("Assistant: Fuckdolls", "fuckdollsTransfer"); + generateRowCategory("Assistant: Bioreactors", "menialBioreactorsTransfer"); + generateRowCategory("Slave Babies", "babyTransfer"); // FINANCIALS - generateRowShowTotal("Financials", "FINANCIALS"); - generateRowTracking("Weather", "weather"); - generateRowTracking("Rents", "rents"); - generateRowTracking("Fines", "fines"); - generateRowTracking("Events", "event"); - generateRowTracking("Capital Expenses", "capEx"); - generateRowTracking("Future Society Shaping", "futureSocieties"); - generateRowTracking("School Subsidy", "schoolBacking") - generateRowTracking("Arcology conflict", "war"); - generateRowTracking("Cheating", "cheating"); + generateRowGroup("Financials", "FINANCIALS"); + generateRowCategory("Weather", "weather"); + generateRowCategory("Rents", "rents"); + generateRowCategory("Fines", "fines"); + generateRowCategory("Events", "event"); + generateRowCategory("Capital Expenses", "capEx"); + generateRowCategory("Future Society Shaping", "futureSocieties"); + generateRowCategory("School Subsidy", "schoolBacking") + generateRowCategory("Arcology conflict", "war"); + generateRowCategory("Cheating", "cheating"); // POLICIES - generateRowShowTotal("Policies", "POLICIES"); - generateRowTracking("Policies", "policies"); + generateRowGroup("Policies", "POLICIES"); + generateRowCategory("Policies", "policies"); // EDICTS - generateRowShowTotal("Edicts", "EDICTS"); - generateRowTracking("Edicts", "edicts"); + generateRowGroup("Edicts", "EDICTS"); + generateRowCategory("Edicts", "edicts"); // PERSONAL FINANCE - generateRowShowTotal("Personal Finance", "PERSONALFINANCE"); - generateRowTracking("Personal Business", "personalBusiness"); - generateRowTracking("Personal Living Expenses", "personalLivingExpenses"); - generateRowTracking("Your skills", "PCSkills"); - generateRowTracking("Your training expenses", "PCtraining"); - generateRowTracking("Your medical expenses", "PCmedical"); - generateRowTracking("Citizen Orphanage", "citizenOrphanage"); - generateRowTracking("Private Orphanage", "privateOrphanage"); - generateRowTracking("Stock dividents", "stocks"); - generateRowTracking("Stock trading", "stocksTraded"); + generateRowGroup("Personal Finance", "PERSONALFINANCE"); + generateRowCategory("Personal Business", "personalBusiness"); + generateRowCategory("Personal Living Expenses", "personalLivingExpenses"); + generateRowCategory("Your skills", "PCSkills"); + generateRowCategory("Your training expenses", "PCtraining"); + generateRowCategory("Your medical expenses", "PCmedical"); + generateRowCategory("Citizen Orphanage", "citizenOrphanage"); + generateRowCategory("Private Orphanage", "privateOrphanage"); + generateRowCategory("Stock dividents", "stocks"); + generateRowCategory("Stock trading", "stocksTraded"); // SECURITY - generateRowShowTotal("Security", "SECURITY"); - generateRowTracking("Mercenaries", "mercenaries"); - generateRowTracking("Security Expansion", "securityExpansion"); - generateRowTracking("Special Forces", "specialForces"); - generateRowTracking("Peacekeepers", "peacekeepers"); + generateRowGroup("Security", "SECURITY"); + generateRowCategory("Mercenaries", "mercenaries"); + generateRowCategory("Security Expansion", "securityExpansion"); + generateRowCategory("Special Forces", "specialForces"); + generateRowCategory("Peacekeepers", "peacekeepers"); // BUDGET REPORT createSectionHeader("Budget Report"); @@ -841,7 +845,7 @@ App.UI.Budget.Cost = function() { cell.append(headline); } - function generateRowTracking(node, category) { + function generateRowCategory(node, category) { if (category === "") { row = table.insertRow(); row.append(document.createElement('br')); @@ -866,7 +870,7 @@ App.UI.Budget.Cost = function() { } } - function generateRowShowTotal(title, group, structure, passage, occupancy) { + function generateRowGroup(title, group, structure, passage, occupancy) { if (F[group].income || F[group].expenses || V.showAllEntries.costsBudget) { row = table.insertRow(); cell = row.insertCell();