diff --git a/src/markets/theMarket/market.js b/src/markets/theMarket/market.js new file mode 100644 index 0000000000000000000000000000000000000000..a172b7fcbaa16c1ff7cfaf00c729881fff3473fc --- /dev/null +++ b/src/markets/theMarket/market.js @@ -0,0 +1,41 @@ +App.UI.market = function() { + const span = document.createElement("span"); + span.id = "slave-markets"; + + span.append(App.UI.buySlaves()); + span.append(App.UI.sellSlaves()); + + const menialSpan = document.createElement("span"); + menialSpan.id = "menial-span"; + menialSpan.append(App.UI.tradeMenials()); + span.append(menialSpan); + + return span; +}; + +App.UI.specificMarket = function({market, slaveMarket, slaveMarketLimit, newSlaves = [], numArcology} = {}) { + const el = new DocumentFragment(); + + // Sidebar + V.nextButton = "Back"; + V.nextLink = "Buy Slaves"; + V.returnTo = "Buy Slaves"; + V.encyclopedia = "Kidnapped Slaves"; + // Multi-Purchase Support + if (V.newSlaves.length > 0) { + V.nextButton = "Continue"; + V.nextLink = "Bulk Slave Intro"; + V.returnTo = "Main"; + V.newSlaveIndex = 0; + } + + // fake a new passage so we can preserve some persistent data without globals + App.Utils.scheduleSidebarRefresh(); // TODO: not updating back button + window.scrollTo(0, 0); + el.append( + App.Markets[market](numArcology) + ); + + + return jQuery("#slave-markets").empty().append(el); +}; diff --git a/src/markets/theMarket/tradeMenials.js b/src/markets/theMarket/tradeMenials.js index 5b2281662532c42fea26829148d311d6dd871773..dfd14db4901d621d3edd5a8c8f99fbb7d40f654c 100644 --- a/src/markets/theMarket/tradeMenials.js +++ b/src/markets/theMarket/tradeMenials.js @@ -146,14 +146,13 @@ App.UI.tradeMenials = function() { const el = new DocumentFragment(); let div = document.createElement("div"); if (V.menials > 1) { - div.append(`You own ${num(Math.trunc(V.menials))} menial slaves. `); + el.append(`You own ${num(Math.trunc(V.menials))} menial slaves. `); } else if (V.menials > 0) { - div.append(`You own one menial slave. `); + el.append(`You own one menial slave. `); } else { - div.append(`You do not own any menial slaves. `); + el.append(`You do not own any menial slaves. `); } - div.append(`The market price of menials is ${cashFormat(menialPrice)}. `); - el.append(div); + el.append(`The market price of menials is ${cashFormat(menialPrice)}. `); if (bulkMax > 0 && V.cash > menialPrice) { div = document.createElement("div"); @@ -167,9 +166,10 @@ App.UI.tradeMenials = function() { linkArray.push( App.UI.DOM.link( "Buy", - () => buySomeMenials(1), - [], - "Buy Slaves" + () => { + buySomeMenials(1); + jQuery("#menial-span").empty().append(App.UI.tradeMenials()); + } ) ); if (V.cash > (menialSlaveCost(10)) * 10) { @@ -187,9 +187,8 @@ App.UI.tradeMenials = function() { buySomeMenials( Math.trunc(Math.clamp(V.cash / (menialPrice + _menialBulkPremium), 0, bulkMax)) ); + jQuery("#menial-span").empty().append(App.UI.tradeMenials()); }, - [], - "Buy Slaves" ) ); } @@ -199,19 +198,19 @@ App.UI.tradeMenials = function() { } 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"); + cashX(menialSlaveCost(number) * number, "menialTransfer"); }; linkArray.push( App.UI.DOM.link( "Sell", - () => sellSomeMenials(1), - [], - "Buy Slaves" + () => { + sellSomeMenials(1); + jQuery("#menial-span").empty().append(App.UI.tradeMenials()); + } ) ); @@ -227,9 +226,8 @@ App.UI.tradeMenials = function() { () => { sellSomeMenials(V.menials); V.menials = 0; // Be quite sure. + jQuery("#menial-span").empty().append(App.UI.tradeMenials()); }, - [], - "Buy Slaves" ) ); App.UI.DOM.appendNewElement("div", el, App.UI.DOM.generateLinksStrip(linkArray)); @@ -253,9 +251,10 @@ App.UI.tradeMenials = function() { linkArray.push( App.UI.DOM.link( "Convert to Fuckdoll", - () => convertSomeMenialsToFuckdolls(1), - [], - "Buy Slaves" + () => { + convertSomeMenialsToFuckdolls(1); + jQuery("#menial-span").empty().append(App.UI.tradeMenials()); + } ) ); @@ -271,9 +270,8 @@ App.UI.tradeMenials = function() { () => { convertSomeMenialsToFuckdolls(V.menials); V.menials = 0; // Be really sure + jQuery("#menial-span").empty().append(App.UI.tradeMenials()); }, - [], - "Buy Slaves" ) ); @@ -292,9 +290,10 @@ App.UI.tradeMenials = function() { linkArray.push( App.UI.DOM.link( "Convert to Bioreactor", - () => convertSomeMenialsToBioreactors(1), - [], - "Buy Slaves" + () => { + convertSomeMenialsToBioreactors(1); + jQuery("#menial-span").empty().append(App.UI.tradeMenials()); + } ) ); @@ -310,12 +309,11 @@ App.UI.tradeMenials = function() { () => { convertSomeMenialsToBioreactors(V.menials); V.menials = 0; // Be really sure + jQuery("#menial-span").empty().append(App.UI.tradeMenials()); }, - [], - "Buy Slaves" ) ); - + div = document.createElement("div"); div.append(App.UI.DOM.generateLinksStrip(linkArray)); App.UI.DOM.appendNewElement("span", div, `Conversion costs ${cashFormat(convertCost)} each`, "note"); el.append(div); @@ -328,14 +326,14 @@ App.UI.tradeMenials = function() { const el = new DocumentFragment(); let div = document.createElement("div"); if (V.fuckdolls > 1) { - div.append(`You own ${num(Math.trunc(V.fuckdolls))} standard Fuckdolls. `); + el.append(`You own ${num(Math.trunc(V.fuckdolls))} standard Fuckdolls. `); } else if (V.fuckdolls > 0) { - div.append(`You own one standard Fuckdoll. `); + el.append(`You own one standard Fuckdoll. `); } else if (V.arcologies[0].FSPaternalist === "unset") { - div.append(`You do not own any standard Fuckdolls. `); + el.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)}. `); + el.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"); @@ -349,9 +347,10 @@ App.UI.tradeMenials = function() { linkArray.push( App.UI.DOM.link( "Buy", - () => buySomeFuckdolls(1), - [], - "Buy Slaves" + () => { + buySomeFuckdolls(1); + jQuery("#menial-span").empty().append(App.UI.tradeMenials()); + } ) ); if (V.cash > (menialSlaveCost(10)) * 10) { @@ -369,9 +368,8 @@ App.UI.tradeMenials = function() { buySomeFuckdolls( Math.trunc(Math.clamp(V.cash / (menialPrice + _menialBulkPremium), 0, bulkMax)) ); + jQuery("#menial-span").empty().append(App.UI.tradeMenials()); }, - [], - "Buy Slaves" ) ); } @@ -385,20 +383,21 @@ App.UI.tradeMenials = function() { const sellSomeFuckdolls = function(number = 1) { V.menials -= number; V.menialDemandFactor -= number; - cashX(forceNeg(menialSlaveCost(-number) * number), "fuckdollsTransfer"); + cashX(menialSlaveCost(number) * number, "fuckdollsTransfer"); }; linkArray.push( App.UI.DOM.link( "Sell", - () => sellSomeFuckdolls(1), - [], - "Buy Slaves" + () => { + sellSomeFuckdolls(1); + jQuery("#menial-span").empty().append(App.UI.tradeMenials()); + } ) ); - if (V.menials >= 10) { + if (V.fuckdolls >= 10) { makeLink(10, sellSomeFuckdolls); - if (V.menials >= 100) { + if (V.fuckdolls >= 100) { makeLink(100, sellSomeFuckdolls); } } @@ -406,11 +405,10 @@ App.UI.tradeMenials = function() { App.UI.DOM.link( "all", () => { - sellSomeFuckdolls(V.menials); - V.menials = 0; // Be quite sure. + sellSomeFuckdolls(V.fuckdolls); + V.fuckdolls = 0; // Be quite sure. + jQuery("#menial-span").empty().append(App.UI.tradeMenials()); }, - [], - "Buy Slaves" ) ); App.UI.DOM.appendNewElement("div", el, App.UI.DOM.generateLinksStrip(linkArray)); @@ -424,14 +422,14 @@ App.UI.tradeMenials = function() { const el = new DocumentFragment(); let div = document.createElement("div"); if (V.menialBioreactors > 1) { - div.append(`You own ${num(Math.trunc(V.menialBioreactors))} standard bioreactors. `); + el.append(`You own ${num(Math.trunc(V.menialBioreactors))} standard bioreactors. `); } else if (V.menialBioreactors > 0) { - div.append(`You own one standard bioreactor. `); + el.append(`You own one standard bioreactor. `); } else if (V.arcologies[0].FSPaternalist === "unset") { - div.append(`You do not own any standard bioreactors. `); + el.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)}. `); + el.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"); @@ -445,9 +443,10 @@ App.UI.tradeMenials = function() { linkArray.push( App.UI.DOM.link( "Buy", - () => buySomeBioreactors(1), - [], - "Buy Slaves" + () => { + buySomeBioreactors(1); + jQuery("#menial-span").empty().append(App.UI.tradeMenials()); + } ) ); if (V.cash > (menialSlaveCost(10)) * 10) { @@ -465,9 +464,8 @@ App.UI.tradeMenials = function() { buySomeBioreactors( Math.trunc(Math.clamp(V.cash / (menialPrice - 99 + _bioreactorBulkPremium), 0, bulkMax)) ); + jQuery("#menial-span").empty().append(App.UI.tradeMenials()); }, - [], - "Buy Slaves" ) ); } @@ -477,25 +475,25 @@ App.UI.tradeMenials = function() { } } 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"); + cashX(menialSlaveCost(number - 100) * number, "bioreactorsTransfer"); }; linkArray.push( App.UI.DOM.link( "Sell", - () => sellSomeBioreactors(1), - [], - "Buy Slaves" + () => { + sellSomeBioreactors(1); + jQuery("#menial-span").empty().append(App.UI.tradeMenials()); + } ) ); - if (V.menials >= 10) { + if (V.menialBioreactors >= 10) { makeLink(10, sellSomeBioreactors); - if (V.menials >= 100) { + if (V.menialBioreactors >= 100) { makeLink(100, sellSomeBioreactors); } } @@ -503,18 +501,17 @@ App.UI.tradeMenials = function() { App.UI.DOM.link( "all", () => { - sellSomeBioreactors(V.menials); - V.menials = 0; // Be quite sure. + sellSomeBioreactors(V.menialBioreactors); + V.menialBioreactors = 0; // Be quite sure. + jQuery("#menial-span").empty().append(App.UI.tradeMenials()); }, - [], - "Buy Slaves" ) ); + div = document.createElement("div"); div.append(App.UI.DOM.generateLinksStrip(linkArray)); el.append(div); } } - return el; } @@ -527,9 +524,10 @@ App.UI.tradeMenials = function() { linkArray.push( App.UI.DOM.link( `x${number}`, - () => runMe(number), - [], - "Buy Slaves" + () => { + runMe(number); + jQuery("#menial-span").empty().append(App.UI.tradeMenials()); + } ) ); } diff --git a/src/uncategorized/buySlaves.tw b/src/uncategorized/buySlaves.tw index eb4532559c26dc97358cf9c0a0f978d0ed594306..953bee616f245ad277686f635dc994041f80c57e 100644 --- a/src/uncategorized/buySlaves.tw +++ b/src/uncategorized/buySlaves.tw @@ -3,8 +3,4 @@ <<set $nextButton = "Back">> <<set $nextLink = "Main">> -<<includeDOM App.UI.buySlaves()>> - -<<includeDOM App.UI.sellSlaves()>> - -<<includeDOM App.UI.tradeMenials()>> \ No newline at end of file +<<includeDOM App.UI.market()>>