Newer
Older
App.Underperformers = {};
/** Select only slaves which are not reasonably expected to produce any income (brand new slaves, servants, fucktoys, etc)
* @param {App.Entity.SlaveState} slave
* @returns {boolean}
*/
App.Underperformers.expectIncome = function(slave) {
const productionJobs = [Job.ARCADE, Job.MILKED, Job.WHORE, Job.GLORYHOLE, Job.BROTHEL, Job.DAIRY];
return productionJobs.includes(slave.assignment) && ((slave.weekAcquired + 1) < V.week) && _.isFinite(slave.lastWeeksCashIncome);
};
App.Underperformers.highSale = function() {
const description = App.UI.DOM.makeElement("div", "Take the rough value of a slave and divide it by how much they made overall last week. This will tell you how many weeks it might take them to earn the same amount you'd get for selling them right now.", "note");
const frag = App.UI.SlaveList.render(
getBestSlavesIDs(
{
const ratio = slaveCost(slave) / (slave.lastWeeksCashIncome - getSlaveCost(slave));
return ratio > 0 ? ratio : 100000000 + ratio;
},
count: 7,
}
),
[],
App.UI.SlaveList.SlaveInteract.stdInteract,
(slave) => $(document.createDocumentFragment()).append(
`Worth ${cashFormatColor(slaveCost(slave))} / Nets ${cashFormatColor(slave.lastWeeksCashIncome - getSlaveCost(slave))} a week = ${(Math.trunc(slaveCost(slave) / (slave.lastWeeksCashIncome - getSlaveCost(slave)))) > 0 ? (Math.trunc(slaveCost(slave) / (slave.lastWeeksCashIncome - getSlaveCost(slave)))) : "infinite"} weeks`
).get(0)
);
frag.prepend(description);
return frag;
};
App.Underperformers.expensive = function() {
const description = App.UI.DOM.makeElement("div", "This list looks for moochers by weighing their weekly income against the weekly cost of providing for them.", "note");
const frag = App.UI.SlaveList.render(
getBestSlavesIDs(
{
largest: false,
count: 7,
}
),
[],
App.UI.SlaveList.SlaveInteract.stdInteract,
(slave) => $(document.createDocumentFragment()).append(
`${cashFormatColor(Math.trunc(slave.lastWeeksCashIncome - getSlaveCost(slave)))} net last week`
).get(0)
);
frag.prepend(description);
return frag;
};