diff --git a/src/markets/theMarket/tradeMenials.js b/src/markets/theMarket/tradeMenials.js index 774c4354932b998b0e94dd7080895b923c599b4f..e207b2d8c6b9ce66b78d4787eb349e17fed58182 100644 --- a/src/markets/theMarket/tradeMenials.js +++ b/src/markets/theMarket/tradeMenials.js @@ -1,19 +1,34 @@ App.UI.tradeMenials = function() { const el = new DocumentFragment(); + const menialPrice = menialSlaveCost(); + const bulkMax = V.PopCap - V.menials - V.fuckdolls - V.menialBioreactors; + let linkArray; App.UI.DOM.appendNewElement("h2", el, "Menial Slaves"); - el.append(menialBlock()); + el.append(slaveDemand()); + el.append(slaveSupply()); + + App.UI.DOM.appendNewElement("div", el, MenialPopCap()); + + App.UI.DOM.appendNewElement("div", el, `The parts of your arcology you own can house a total of ${num(V.PopCap)} menial slaves. `); + + el.append(menialTrading()); + + if (V.arcologies[0].FSPaternalist === "unset") { + el.append(fuckDollConversion()); + el.append(fuckDollTrading()); + } + + el.append(bioreactorTrading()); return el; - function menialBlock() { + + function slaveDemand() { const el = new DocumentFragment(); - let div; + let div = document.createElement("div"); let span; - let linkArray; - - div = document.createElement("div"); div.append(`Slave demand is `); if (V.menialDemandFactor <= -35000) { App.UI.DOM.appendNewElement("span", div, `extremely low`, ["red", "bold"]); @@ -63,8 +78,13 @@ App.UI.tradeMenials = function() { div.append(span); } el.append(div); + return el; + } - div = document.createElement("div"); + function slaveSupply() { + const el = new DocumentFragment(); + let span; + let div = document.createElement("div"); div.append(`Slave supply is `); if (V.menialSupplyFactor <= -35000) { @@ -117,415 +137,398 @@ App.UI.tradeMenials = function() { } el.append(div); - App.UI.DOM.appendNewElement("div", el, MenialPopCap()); - - App.UI.DOM.appendNewElement("div", el, `The parts of your arcology you own can house a total of ${num(V.PopCap)} menial slaves. `); - - div = document.createElement("div"); + return el; + } - const menialPrice = menialSlaveCost(); - const bulkMax = V.PopCap - V.menials - V.fuckdolls - V.menialBioreactors; + function menialTrading() { + const el = new DocumentFragment(); + let div = document.createElement("div"); + if (V.menials > 1) { + div.append(`You own ${num(Math.trunc(V.menials))} menial slaves. `); + } else if (V.menials > 0) { + div.append(`You own one menial slave. `); + } else { + div.append(`You do not own any menial slaves. `); + } + div.append(`The market price of menials is ${cashFormat(menialPrice)}. `); + el.append(div); - el.append(menialTrading()); + if (bulkMax > 0 && V.cash > menialPrice) { + div = document.createElement("div"); + linkArray = []; + const buySomeMenials = function(number = 1) { + V.menials += number; + V.menialSupplyFactor -= number; + cashX(forceNeg(menialSlaveCost(number) * number), "menialTransfer"); + }; - if (V.arcologies[0].FSPaternalist === "unset") { - el.append(fuckDollConversion()); - el.append(fuckDollTrading()); + linkArray.push( + App.UI.DOM.link( + "Buy", + () => buySomeMenials(1), + [], + "Buy Slaves" + ) + ); + if (V.cash > (menialSlaveCost(10)) * 10) { + makeLink(10, buySomeMenials); + } + if (V.cash > (menialSlaveCost(100)) * 100) { + makeLink(100, buySomeMenials); + } + if (V.cash > (menialPrice + 1) * 2) { + let _menialBulkPremium = Math.trunc(1 + Math.clamp(V.cash / menialPrice, 0, bulkMax) / 400); + linkArray.push( + App.UI.DOM.link( + "max", + () => { + buySomeMenials( + Math.trunc(Math.clamp(V.cash / (menialPrice + _menialBulkPremium), 0, bulkMax)) + ); + }, + [], + "Buy Slaves" + ) + ); + } + div.append(App.UI.DOM.generateLinksStrip(linkArray)); + App.UI.DOM.appendNewElement("span", div, " Bulk transactions may require offering a premium.", "note"); + el.append(div); } - el.append(bioreactorTrading()); - - return el; + if (V.menials > 0) { + div = document.createElement("div"); + linkArray = []; + const sellSomeMenials = function(number = 1) { + V.menials -= number; + V.menialDemandFactor -= number; + cashX(forceNeg(menialSlaveCost(-number) * number), "menialTransfer"); + }; + linkArray.push( + App.UI.DOM.link( + "Sell", + () => sellSomeMenials(1), + [], + "Buy Slaves" + ) + ); - function menialTrading() { - const el = new DocumentFragment(); - let div = document.createElement("div"); - if (V.menials > 1) { - div.append(`You own ${num(Math.trunc(V.menials))} menial slaves. `); - } else if (V.menials > 0) { - div.append(`You own one menial slave. `); - } else { - div.append(`You do not own any menial slaves. `); + if (V.menials >= 10) { + makeLink(10, sellSomeMenials); + if (V.menials >= 100) { + makeLink(100, sellSomeMenials); + } } - div.append(`The market price of menials is ${cashFormat(menialPrice)}. `); - el.append(div); + linkArray.push( + App.UI.DOM.link( + "all", + () => { + sellSomeMenials(V.menials); + V.menials = 0; // Be quite sure. + }, + [], + "Buy Slaves" + ) + ); + App.UI.DOM.appendNewElement("div", el, App.UI.DOM.generateLinksStrip(linkArray)); + } + return el; + } - if (bulkMax > 0 && V.cash > menialPrice) { - div = document.createElement("div"); - linkArray = []; - const buySomeMenials = function(number = 1) { - V.menials += number; - V.menialSupplyFactor -= number; - cashX(forceNeg(menialSlaveCost(number) * number), "menialTransfer"); + function fuckDollConversion() { + const el = document.createElement("div"); + let div = document.createElement("div"); + let convertCost; + if (V.menials > 0) { + if (V.arcadeUpgradeFuckdolls > 0) { + convertCost = 100; + const convertSomeMenialsToFuckdolls = function(number) { + V.menials -= number; + V.fuckdolls += number; + cashX(forceNeg(number * convertCost), "menialTransfer"); }; - + linkArray = []; linkArray.push( App.UI.DOM.link( - "Buy", - () => buySomeMenials(1), + "Convert to Fuckdoll", + () => convertSomeMenialsToFuckdolls(1), [], "Buy Slaves" ) ); - if (V.cash > (menialSlaveCost(10)) * 10) { - makeLink(10, buySomeMenials); - } - if (V.cash > (menialSlaveCost(100)) * 100) { - makeLink(100, buySomeMenials); - } - if (V.cash > (menialPrice + 1) * 2) { - let _menialBulkPremium = Math.trunc(1 + Math.clamp(V.cash / menialPrice, 0, bulkMax) / 400); - linkArray.push( - App.UI.DOM.link( - "max", - () => { - buySomeMenials( - Math.trunc(Math.clamp(V.cash / (menialPrice + _menialBulkPremium), 0, bulkMax)) - ); - }, - [], - "Buy Slaves" - ) - ); + + if (V.menials >= 10) { + makeLink(10, convertSomeMenialsToFuckdolls); + if (V.menials >= 100) { + makeLink(100, convertSomeMenialsToFuckdolls); + } } + linkArray.push( + App.UI.DOM.link( + "all", + () => { + convertSomeMenialsToFuckdolls(V.menials); + V.menials = 0; // Be really sure + }, + [], + "Buy Slaves" + ) + ); + div.append(App.UI.DOM.generateLinksStrip(linkArray)); - App.UI.DOM.appendNewElement("span", div, " Bulk transactions may require offering a premium.", "note"); + App.UI.DOM.appendNewElement("span", div, `Conversion costs ${cashFormat(convertCost)} each`, "note"); el.append(div); } - - if (V.menials > 0) { - div = document.createElement("div"); - linkArray = []; - const sellSomeMenials = function(number = 1) { + if (V.dairyFeedersUpgrade > 0) { + convertCost = 500; + const convertSomeMenialsToBioreactors = function(number) { V.menials -= number; - V.menialDemandFactor -= number; - cashX(forceNeg(menialSlaveCost(-number) * number), "menialTransfer"); + V.menialBioreactors += number; + cashX(forceNeg(number * convertCost), "menialTransfer"); }; + linkArray = []; linkArray.push( App.UI.DOM.link( - "Sell", - () => sellSomeMenials(1), + "Convert to Bioreactor", + () => convertSomeMenialsToBioreactors(1), [], "Buy Slaves" ) ); if (V.menials >= 10) { - makeLink(10, sellSomeMenials); + makeLink(10, convertSomeMenialsToBioreactors); if (V.menials >= 100) { - makeLink(100, sellSomeMenials); + makeLink(100, convertSomeMenialsToBioreactors); } } linkArray.push( App.UI.DOM.link( "all", () => { - sellSomeMenials(V.menials); - V.menials = 0; // Be quite sure. + convertSomeMenialsToBioreactors(V.menials); + V.menials = 0; // Be really sure }, [], "Buy Slaves" ) ); - App.UI.DOM.appendNewElement("div", el, App.UI.DOM.generateLinksStrip(linkArray)); + + div.append(App.UI.DOM.generateLinksStrip(linkArray)); + App.UI.DOM.appendNewElement("span", div, `Conversion costs ${cashFormat(convertCost)} each`, "note"); + el.append(div); } - return el; } + return el; + } - function fuckDollConversion() { - const el = document.createElement("div"); - let convertCost; - if (V.menials > 0) { - if (V.arcadeUpgradeFuckdolls > 0) { - convertCost = 100; - const convertSomeMenialsToFuckdolls = function(number) { - V.menials -= number; + function fuckDollTrading() { + const el = new DocumentFragment(); + let div = document.createElement("div"); + if (V.fuckdolls > 1) { + div.append(`You own ${num(Math.trunc(V.fuckdolls))} standard Fuckdolls. `); + } else if (V.fuckdolls > 0) { + div.append(`You own one standard Fuckdoll. `); + } else if (V.arcologies[0].FSPaternalist === "unset") { + div.append(`You do not own any standard Fuckdolls. `); + } + if ((V.fuckdolls > 0) || (V.arcologies[0].FSPaternalist === "unset")) { + div.append(`The market price of standard Fuckdolls is ${cashFormat(menialPrice)}. `); + if (bulkMax > 0) { + if (V.arcologies[0].FSPaternalist === "unset" && V.cash > menialPrice) { + div = document.createElement("div"); + linkArray = []; + const buySomeFuckdolls = function(number = 1) { V.fuckdolls += number; - cashX(forceNeg(number * convertCost), "menialTransfer"); + V.menialSupplyFactor -= number; + cashX(forceNeg(menialSlaveCost(number) * number), "fuckdollsTransfer"); }; - linkArray = []; - linkArray.push( - App.UI.DOM.link( - "Convert to Fuckdoll", - () => convertSomeMenialsToFuckdolls(1), - [], - "Buy Slaves" - ) - ); - - if (V.menials >= 10) { - makeLink(10, convertSomeMenialsToFuckdolls); - if (V.menials >= 100) { - makeLink(100, convertSomeMenialsToFuckdolls); - } - } - linkArray.push( - App.UI.DOM.link( - "all", - () => { - convertSomeMenialsToFuckdolls(V.menials); - V.menials = 0; // Be really sure - }, - [], - "Buy Slaves" - ) - ); - div.append(App.UI.DOM.generateLinksStrip(linkArray)); - App.UI.DOM.appendNewElement("span", div, `Conversion costs ${cashFormat(convertCost)} each`, "note"); - el.append(div); - } - if (V.dairyFeedersUpgrade > 0) { - convertCost = 500; - const convertSomeMenialsToBioreactors = function(number) { - V.menials -= number; - V.menialBioreactors += number; - cashX(forceNeg(number * convertCost), "menialTransfer"); - }; - linkArray = []; linkArray.push( App.UI.DOM.link( - "Convert to Bioreactor", - () => convertSomeMenialsToBioreactors(1), + "Buy", + () => buySomeFuckdolls(1), [], "Buy Slaves" ) ); - - if (V.menials >= 10) { - makeLink(10, convertSomeMenialsToBioreactors); - if (V.menials >= 100) { - makeLink(100, convertSomeMenialsToBioreactors); - } + if (V.cash > (menialSlaveCost(10)) * 10) { + makeLink(10, buySomeFuckdolls); } - linkArray.push( - App.UI.DOM.link( - "all", - () => { - convertSomeMenialsToBioreactors(V.menials); - V.menials = 0; // Be really sure - }, - [], - "Buy Slaves" - ) - ); - - div.append(App.UI.DOM.generateLinksStrip(linkArray)); - App.UI.DOM.appendNewElement("span", div, `Conversion costs ${cashFormat(convertCost)} each`, "note"); - el.append(div); - } - } - return el; - } - - function fuckDollTrading() { - const el = new DocumentFragment(); - let div = document.createElement("div"); - if (V.fuckdolls > 1) { - div.append(`You own ${num(Math.trunc(V.fuckdolls))} standard Fuckdolls. `); - } else if (V.fuckdolls > 0) { - div.append(`You own one standard Fuckdoll. `); - } else if (V.arcologies[0].FSPaternalist === "unset") { - div.append(`You do not own any standard Fuckdolls. `); - } - if ((V.fuckdolls > 0) || (V.arcologies[0].FSPaternalist === "unset")) { - div.append(`The market price of standard Fuckdolls is ${cashFormat(menialPrice)}. `); - if (bulkMax > 0) { - if (V.arcologies[0].FSPaternalist === "unset" && V.cash > menialPrice) { - div = document.createElement("div"); - linkArray = []; - const buySomeFuckdolls = function(number = 1) { - V.fuckdolls += number; - V.menialSupplyFactor -= number; - cashX(forceNeg(menialSlaveCost(number) * number), "fuckdollsTransfer"); - }; - + if (V.cash > (menialSlaveCost(100)) * 100) { + makeLink(100, buySomeFuckdolls); + } + if (V.cash > (menialPrice + 1) * 2) { + let _menialBulkPremium = Math.trunc(1 + Math.clamp(V.cash / menialPrice, 0, bulkMax) / 400); linkArray.push( App.UI.DOM.link( - "Buy", - () => buySomeFuckdolls(1), + "max", + () => { + buySomeFuckdolls( + Math.trunc(Math.clamp(V.cash / (menialPrice + _menialBulkPremium), 0, bulkMax)) + ); + }, [], "Buy Slaves" ) ); - if (V.cash > (menialSlaveCost(10)) * 10) { - makeLink(10, buySomeFuckdolls); - } - if (V.cash > (menialSlaveCost(100)) * 100) { - makeLink(100, buySomeFuckdolls); - } - if (V.cash > (menialPrice + 1) * 2) { - let _menialBulkPremium = Math.trunc(1 + Math.clamp(V.cash / menialPrice, 0, bulkMax) / 400); - linkArray.push( - App.UI.DOM.link( - "max", - () => { - buySomeFuckdolls( - Math.trunc(Math.clamp(V.cash / (menialPrice + _menialBulkPremium), 0, bulkMax)) - ); - }, - [], - "Buy Slaves" - ) - ); - } - div.append(App.UI.DOM.generateLinksStrip(linkArray)); - App.UI.DOM.appendNewElement("span", div, " Bulk transactions may require offering a premium.", "note"); - el.append(div); } + div.append(App.UI.DOM.generateLinksStrip(linkArray)); + App.UI.DOM.appendNewElement("span", div, " Bulk transactions may require offering a premium.", "note"); + el.append(div); } - if (V.fuckdolls >= 1) { - linkArray = []; - const sellSomeFuckdolls = function(number = 1) { - V.menials -= number; - V.menialDemandFactor -= number; - cashX(forceNeg(menialSlaveCost(-number) * number), "fuckdollsTransfer"); - }; - linkArray.push( - App.UI.DOM.link( - "Sell", - () => sellSomeFuckdolls(1), - [], - "Buy Slaves" - ) - ); + } + if (V.fuckdolls >= 1) { + linkArray = []; + const sellSomeFuckdolls = function(number = 1) { + V.menials -= number; + V.menialDemandFactor -= number; + cashX(forceNeg(menialSlaveCost(-number) * number), "fuckdollsTransfer"); + }; + linkArray.push( + App.UI.DOM.link( + "Sell", + () => sellSomeFuckdolls(1), + [], + "Buy Slaves" + ) + ); - if (V.menials >= 10) { - makeLink(10, sellSomeFuckdolls); - if (V.menials >= 100) { - makeLink(100, sellSomeFuckdolls); - } + if (V.menials >= 10) { + makeLink(10, sellSomeFuckdolls); + if (V.menials >= 100) { + makeLink(100, sellSomeFuckdolls); } - linkArray.push( - App.UI.DOM.link( - "all", - () => { - sellSomeFuckdolls(V.menials); - V.menials = 0; // Be quite sure. - }, - [], - "Buy Slaves" - ) - ); - App.UI.DOM.appendNewElement("div", el, App.UI.DOM.generateLinksStrip(linkArray)); } + linkArray.push( + App.UI.DOM.link( + "all", + () => { + sellSomeFuckdolls(V.menials); + V.menials = 0; // Be quite sure. + }, + [], + "Buy Slaves" + ) + ); + App.UI.DOM.appendNewElement("div", el, App.UI.DOM.generateLinksStrip(linkArray)); } - - return el; } - function bioreactorTrading() { - const el = new DocumentFragment(); - let div = document.createElement("div"); - if (V.menialBioreactors > 1) { - div.append(`You own ${num(Math.trunc(V.menialBioreactors))} standard bioreactors. `); - } else if (V.menialBioreactors > 0) { - div.append(`You own one standard bioreactor. `); - } else if (V.arcologies[0].FSPaternalist === "unset") { - div.append(`You do not own any standard bioreactors. `); - } - if ((V.menialBioreactors > 0) || (V.arcologies[0].FSPaternalist === "unset")) { - div.append(`The market price of standard bioreactors is ${cashFormat(menialPrice - 100)}. `); - if (bulkMax > 0) { - if (V.arcologies[0].FSPaternalist === "unset" && V.cash > menialPrice) { - div = document.createElement("div"); - linkArray = []; - const buySomeBioreactors = function(number = 1) { - V.menialBioreactors += number; - V.menialSupplyFactor -= number; - cashX(forceNeg(menialSlaveCost(number - 100) * number), "bioreactorsTransfer"); - }; + return el; + } - linkArray.push( - App.UI.DOM.link( - "Buy", - () => buySomeBioreactors(1), - [], - "Buy Slaves" - ) - ); - if (V.cash > (menialSlaveCost(10)) * 10) { - makeLink(10, buySomeBioreactors); - } - if (V.cash > (menialSlaveCost(100)) * 100) { - makeLink(100, buySomeBioreactors); - } - if (V.cash > (menialPrice - 99) * 2) { - let _bioreactorBulkPremium = Math.trunc(1 + Math.clamp(V.cash / (menialPrice - 99), 0, bulkMax) / 400); - linkArray.push( - App.UI.DOM.link( - "max", - () => { - buySomeBioreactors( - Math.trunc(Math.clamp(V.cash / (menialPrice - 99 + _bioreactorBulkPremium), 0, bulkMax)) - ); - }, - [], - "Buy Slaves" - ) - ); - } - div.append(App.UI.DOM.generateLinksStrip(linkArray)); - App.UI.DOM.appendNewElement("span", div, " Bulk transactions may require offering a premium.", "note"); - el.append(div); - } - } - if (V.menialBioreactors >= 1) { + function bioreactorTrading() { + const el = new DocumentFragment(); + let div = document.createElement("div"); + if (V.menialBioreactors > 1) { + div.append(`You own ${num(Math.trunc(V.menialBioreactors))} standard bioreactors. `); + } else if (V.menialBioreactors > 0) { + div.append(`You own one standard bioreactor. `); + } else if (V.arcologies[0].FSPaternalist === "unset") { + div.append(`You do not own any standard bioreactors. `); + } + if ((V.menialBioreactors > 0) || (V.arcologies[0].FSPaternalist === "unset")) { + div.append(`The market price of standard bioreactors is ${cashFormat(menialPrice - 100)}. `); + if (bulkMax > 0) { + if (V.arcologies[0].FSPaternalist === "unset" && V.cash > menialPrice) { div = document.createElement("div"); linkArray = []; - const sellSomeBioreactors = function(number = 1) { - V.menials -= number; - V.menialDemandFactor -= number; + const buySomeBioreactors = function(number = 1) { + V.menialBioreactors += number; + V.menialSupplyFactor -= number; cashX(forceNeg(menialSlaveCost(number - 100) * number), "bioreactorsTransfer"); }; - linkArray.push( - App.UI.DOM.link( - "Sell", - () => sellSomeBioreactors(1), - [], - "Buy Slaves" - ) - ); - if (V.menials >= 10) { - makeLink(10, sellSomeBioreactors); - if (V.menials >= 100) { - makeLink(100, sellSomeBioreactors); - } - } linkArray.push( App.UI.DOM.link( - "all", - () => { - sellSomeBioreactors(V.menials); - V.menials = 0; // Be quite sure. - }, + "Buy", + () => buySomeBioreactors(1), [], "Buy Slaves" ) ); + if (V.cash > (menialSlaveCost(10)) * 10) { + makeLink(10, buySomeBioreactors); + } + if (V.cash > (menialSlaveCost(100)) * 100) { + makeLink(100, buySomeBioreactors); + } + if (V.cash > (menialPrice - 99) * 2) { + let _bioreactorBulkPremium = Math.trunc(1 + Math.clamp(V.cash / (menialPrice - 99), 0, bulkMax) / 400); + linkArray.push( + App.UI.DOM.link( + "max", + () => { + buySomeBioreactors( + Math.trunc(Math.clamp(V.cash / (menialPrice - 99 + _bioreactorBulkPremium), 0, bulkMax)) + ); + }, + [], + "Buy Slaves" + ) + ); + } div.append(App.UI.DOM.generateLinksStrip(linkArray)); + App.UI.DOM.appendNewElement("span", div, " Bulk transactions may require offering a premium.", "note"); el.append(div); } } + if (V.menialBioreactors >= 1) { + div = document.createElement("div"); + linkArray = []; + const sellSomeBioreactors = function(number = 1) { + V.menials -= number; + V.menialDemandFactor -= number; + cashX(forceNeg(menialSlaveCost(number - 100) * number), "bioreactorsTransfer"); + }; + linkArray.push( + App.UI.DOM.link( + "Sell", + () => sellSomeBioreactors(1), + [], + "Buy Slaves" + ) + ); - return el; + if (V.menials >= 10) { + makeLink(10, sellSomeBioreactors); + if (V.menials >= 100) { + makeLink(100, sellSomeBioreactors); + } + } + linkArray.push( + App.UI.DOM.link( + "all", + () => { + sellSomeBioreactors(V.menials); + V.menials = 0; // Be quite sure. + }, + [], + "Buy Slaves" + ) + ); + div.append(App.UI.DOM.generateLinksStrip(linkArray)); + el.append(div); + } } - /** - * - * @param {number} number - * @param {Function} runMe - */ - function makeLink(number, runMe) { - linkArray.push( - App.UI.DOM.link( - `x${number}`, - () => runMe(number), - [], - "Buy Slaves" - ) - ); - } + return el; + } + + /** + * + * @param {number} number + * @param {Function} runMe + */ + function makeLink(number, runMe) { + linkArray.push( + App.UI.DOM.link( + `x${number}`, + () => runMe(number), + [], + "Buy Slaves" + ) + ); } };