diff --git a/src/facilities/farmyard/farmyard.js b/src/facilities/farmyard/farmyard.js index 9c21c86f856902d793ed25a8deb6b9cc11074348..d0766c931235250c84769ce39e7a38c96451f383 100644 --- a/src/facilities/farmyard/farmyard.js +++ b/src/facilities/farmyard/farmyard.js @@ -1,3 +1,76 @@ +App.Facilities.Farmyard.menials = function() { + const + frag = new DocumentFragment(), + + links = [], + linksDiv = document.createElement("div"), + + menials = V.menials, + farmMenials = V.farmMenials, + farmMenialsSpace = V.farmMenialsSpace; + + linksDiv.classList.add("indent"); + + if (farmMenials) { + frag.append(`Assigned to ${V.farmyardName} ${farmMenials === 1 ? `is` : `are`} ${farmMenials} menial ${farmMenials === 1 ? `slave` : `slaves`}, working to produce as much food for your arcology as they can. `); + } + + if (farmMenialsSpace) { + frag.append(`You ${menials ? `own ${num(menials)}` : `don't own any`} free menial slaves. ${V.farmyardNameCaps} can house ${farmMenialsSpace} menial slaves total, with ${farmMenialsSpace - farmMenials} free spots. `); + } + + if (farmMenialsSpace && farmMenials < farmMenialsSpace) { + if (menials) { + links.push(App.UI.DOM.passageLink("Transfer in a menial slave", "Farmyard", () => { + V.menials--; + V.farmMenials++; + })); + } + + if (menials >= 10 && farmMenials <= farmMenialsSpace - 10) { + links.push(App.UI.DOM.passageLink("Transfer in 10 menial slaves", "Farmyard", () => { + V.menials -= 10; + V.farmMenials += 10; + })); + } + + if (menials >= 100 && farmMenials <= farmMenialsSpace - 100) { + links.push(App.UI.DOM.passageLink("Transfer in 100 menial slaves", "Farmyard", () => { + V.menials -= 100; + V.farmMenials += 100; + })); + } + + if (menials) { + links.push(App.UI.DOM.passageLink("Transfer in all free menial slaves", "Farmyard", () => { + if (menials > farmMenialsSpace - farmMenials) { + V.menials -= farmMenialsSpace - farmMenials; + V.farmMenials = farmMenialsSpace; + } else { + V.farmMenials += menials; + V.menials = 0; + } + })); + } + + if (farmMenials) { + links.push(App.UI.DOM.passageLink("Transfer out all menial slaves", "Farmyard", () => { + V.menials += farmMenials; + V.farmMenials = 0; + })); + } + } else if (!farmMenialsSpace) { + frag.append(`${V.farmyardNameCaps} cannot currently house any menial slaves. `); + } else { + frag.append(`${V.farmyardNameCaps} has all the menial slaves it can currently house assigned to it. `); + } + + linksDiv.append(App.UI.DOM.generateLinksStrip(links)); + frag.append(linksDiv); + + return frag; +}; + App.Facilities.Farmyard.rules = function() { const frag = new DocumentFragment(); diff --git a/src/facilities/farmyard/farmyard.tw b/src/facilities/farmyard/farmyard.tw index f21ed2178530e0196c752a29f31227b47c5430a6..3710789ef788717d698ce8ab995f50cef10995be 100644 --- a/src/facilities/farmyard/farmyard.tw +++ b/src/facilities/farmyard/farmyard.tw @@ -104,60 +104,7 @@ </div> <span id="menials"> <br> -<<if $farmMenials > 0>> - Assigned here are $farmMenials slaves working to produce as much food as possible. -<</if>> - <<if $farmMenialsSpace > 0>> - You <<if $menials > 0>> own <<print num($menials)>><<else>>don't own any<</if>> free menial slaves. $farmyardNameCaps can house <<print $farmMenialsSpace>> menial slaves total, with <<print $farmMenialsSpace - $farmMenials>> free slots. - <</if>> - -<br> - -<<if ($farmMenials < $farmMenialsSpace) && ($farmMenialsSpace > 0)>> - <<if $menials >= 1>> - <<link "Transfer in a menial slave">> - <<set $menials-->> - <<set $farmMenials++>> - <<goto "Farmyard">> - <</link>> - <</if>> - <<if $menials >= 10 && $farmMenials <= ($farmMenialsSpace - 10)>> - | <<link "Transfer in 10 menial slaves">> - <<set $menials -= 10>> - <<set $farmMenials += 10>> - <<goto "Farmyard">> - <</link>> - <</if>> - <<if $menials > 0>> - | <<link "Transfer in all free menial slaves">> - <<if $menials > $farmMenialsSpace - $farmMenials>> - <<set $menials -= $farmMenialsSpace - $farmMenials>> - <<set $farmMenials = $farmMenialsSpace>> - <<else>> - <<set $farmMenials += $menials>> - <<set $menials = 0>> - <</if>> - <<goto "Farmyard">> - <</link>> - <</if>> - <<if $farmMenials > 0>> - <<if $menials > 0>>|<</if>> - <<link "Transfer out all menial slaves">> - <<set $menials += $farmMenials>> - <<set $farmMenials = 0>> - <<goto "Farmyard">> - <</link>> - <</if>> -<<elseif $farmMenialsSpace <= 0>> - $farmyardNameCaps cannot currently house any menial slaves. -<<else>> - $farmyardNameCaps has all the menial slaves it can currently house assigned to it. - <<link "Transfer out all menial slaves">> - <<set $menials += $farmMenials>> - <<set $farmMenials = 0>> - <<goto "Farmyard">> - <</link>> -<</if>> +<<includeDOM App.Facilities.Farmyard.menials()>> <<if $farmMenialsSpace > 0>> <<run MenialPopCap()>>