diff --git a/js/003-data/gameVariableData.js b/js/003-data/gameVariableData.js index f578b2cd9f480aac6d41eeedbc759128ad7e5677..7865db31dbddf8e45e2edf340a80e5736ffc7484 100644 --- a/js/003-data/gameVariableData.js +++ b/js/003-data/gameVariableData.js @@ -1037,10 +1037,11 @@ App.Data.defaultGameStateVariables = { NPCSlaves: 900, ASlaves: 900, AProsperityCap: 0, - food: 50000, + food: 125000, foodLastWeek: 0, foodProduced: 0, foodStored: 0, + farmyardFoodCost: 5, foodCost: 25, foodMarket: 0, foodRate: { diff --git a/src/data/backwardsCompatibility/backwardsCompatibility.js b/src/data/backwardsCompatibility/backwardsCompatibility.js index 2c06f990a9da8a46d026a9569063f625b5f5a719..3a8e1766b763fc87174bd49189fb0e3c40843f39 100644 --- a/src/data/backwardsCompatibility/backwardsCompatibility.js +++ b/src/data/backwardsCompatibility/backwardsCompatibility.js @@ -996,7 +996,7 @@ App.Update.globalVariables = function() { if (typeof V.sexSupplyBarriersLC !== "undefined") { V.sexSupplyBarriers.lowerClass = V.sexSupplyBarriersLC; } - V.food = Math.max(+V.food, 0) || 0; + V.food = Math.max(+V.food, 0) || 12500; if (V.foodConsumption === 0) { V.foodConsumption = ((V.lowerClass * V.foodRate.lower) + (V.middleClass * V.foodRate.middle) + (V.upperClass * V.foodRate.upper) + (V.topClass * V.foodRate.top)); /* total amount food consumed per week */ } diff --git a/src/data/backwardsCompatibility/datatypeCleanup.js b/src/data/backwardsCompatibility/datatypeCleanup.js index d89b851d5b8e54834a6b2f679764019239badd03..80342a4fac252fc59885e82adb99fcc561d85612 100644 --- a/src/data/backwardsCompatibility/datatypeCleanup.js +++ b/src/data/backwardsCompatibility/datatypeCleanup.js @@ -1933,6 +1933,13 @@ window.ArcologyDatatypeCleanup = function ArcologyDatatypeCleanup() { V.ASlaves = Math.max(+V.ASlaves, 0) || V.NPCSlaves + V.menials + V.fuckdolls + V.menialBioreactors; V.shelterAbuse = Math.max(+V.shelterAbuse, 0) || 0; + if (V.localEcon > 100) { + V.farmyardFoodCost = Math.max(5 / (1 + (Math.trunc(1000-100000/V.localEcon)/10)/100), 3.125); + } else if (V.localEcon === 100) { + V.farmyardFoodCost = 5; + } else { + V.farmyardFoodCost = Math.min(5 * (1 + 1.5 * Math.sqrt(Math.trunc(100000/V.localEcon-1000)/10)/100), 6.5); + } V.foodCost = Math.trunc(2500 / V.localEcon); V.drugsCost = Math.trunc(10000 / V.localEcon); V.rulesCost = Math.trunc(10000 / V.localEcon); diff --git a/src/events/intro/initNationalities.tw b/src/events/intro/initNationalities.tw index c74149433bdc9e4157d036b498b56f4e262707fe..cd749bc20db9a24cd120a86ab2ff92da2877b66a 100644 --- a/src/events/intro/initNationalities.tw +++ b/src/events/intro/initNationalities.tw @@ -78,6 +78,15 @@ maxTroops: 0, equip: 0} >> <</if>> +<<if $experimental.food == 1>> + <<if $localEcon > 100>> + <<set $farmyardFoodCost = Math.max(5 / (1 + (Math.trunc(1000-100000/$localEcon)/10)/100), 3.125)>> + <<elseif $localEcon == 100>> + <<set $farmyardFoodCost = 5 >> + <<else>> + <<set $farmyardFoodCost = Math.min(5 * (1 + 1.5 * Math.sqrt(Math.trunc(100000/$localEcon-1000)/10)/100), 6.5)>> + <</if> +<</if> <<set $minimumSlaveAge = variableAsNumber($minimumSlaveAge, 3, 18, 18)>> <<set $retirementAge = variableAsNumber($retirementAge, 25, 120, 45)>> diff --git a/src/facilities/farmyard/farmyardReport.tw b/src/facilities/farmyard/farmyardReport.tw index 022948b8e2bed8ecba760f006aef077ac4e86975..2173d95cd97fed139807d29d5eb530dec9edf44a 100644 --- a/src/facilities/farmyard/farmyardReport.tw +++ b/src/facilities/farmyard/farmyardReport.tw @@ -281,7 +281,8 @@ <<set _foodWeek = _incomeStats.food>> <</if>> <<if $farmMenials > 0>> - <<set _foodWeek += ($farmMenials*350)>> + /* TODO: Make menial slave output depend on farm upgrades. */ + <<set _foodWeek += ($farmMenials*15)>> <</if>> </span> <</for>> diff --git a/src/facilities/farmyard/food/foodMarket.tw b/src/facilities/farmyard/food/foodMarket.tw index 98b8d31ce5145536971cb6002f67a10bba11386e..0773bc2bafe22f8efcf29491369af7242af163cd 100644 --- a/src/facilities/farmyard/food/foodMarket.tw +++ b/src/facilities/farmyard/food/foodMarket.tw @@ -3,8 +3,8 @@ <<if $useTabs == 0>>__The Food Market__<</if>> <br> -<<set _foodValue = $foodStored*$foodCost>> /* FIXME: currently costs 25 / kg, will need tweaking */ -<<set _maxFood = Math.trunc($cash/$foodCost)>> +<<set _foodValue = Math.round(($foodStored*$farmyardFoodCost + Number.EPSILON) * 100) / 100>> +<<set _maxFood = Math.trunc($cash/$farmyardFoodCost)>> The food market has @@.chocolate;<<print massFormat($foodStored)>>@@ in storage, valued at a total of @@.yellowgreen;<<print cashFormat(_foodValue)>>.@@ <<if $sideBarOptions.compact > 0>> @@ -13,30 +13,33 @@ The food market has @@.chocolate;<<print massFormat($foodStored)>>@@ in storage, <<set _link = "Main">> <</if>> -/* TODO: allow for the buying and selling of food */ <br> -<<link "Buy <<= massFormat(1)>>" _link>><<set cashX(forceNeg($foodCost*1), "farmyard"), $foodStored += 1>><</link>> -| <<link "<<= massFormat(10)>>" _link>><<set cashX(forceNeg($foodCost*10), "farmyard"), $foodStored += 10>><</link>> -| <<link "<<= massFormat(100)>>" _link>><<set cashX(forceNeg($foodCost*100), "farmyard"), $foodStored += 100>><</link>> -| <<link "<<= massFormat(1000)>>" _link>><<set cashX(forceNeg($foodCost*1000), "farmyard"), $foodStored += 1000>><</link>> -| <<link "<<= massFormat(10000)>>" _link>><<set cashX(forceNeg($foodCost*10000), "farmyard"), $foodStored += 10000>><</link>> -| <<link "max" _link>><<set cashX(forceNeg(_maxFood*$foodCost), "farmyard"), $foodStored += _maxFood>><</link>> +<<link "Buy <<= massFormat(1)>>" _link>><<set cashX(forceNeg($farmyardFoodCost*1), "farmyard"), $foodStored += 1>><</link>> +| <<link "<<= massFormat(10)>>" _link>><<set cashX(forceNeg($farmyardFoodCost*10), "farmyard"), $foodStored += 10>><</link>> +| <<link "<<= massFormat(100)>>" _link>><<set cashX(forceNeg($farmyardFoodCost*100), "farmyard"), $foodStored += 100>><</link>> +| <<link "<<= massFormat(1000)>>" _link>><<set cashX(forceNeg($farmyardFoodCost*1000), "farmyard"), $foodStored += 1000>><</link>> +| <<link "<<= massFormat(10000)>>" _link>><<set cashX(forceNeg($farmyardFoodCost*10000), "farmyard"), $foodStored += 10000>><</link>> +| <<link "<<= massFormat(100000)>>" _link>><<set cashX(forceNeg($farmyardFoodCost*100000), "farmyard"), $foodStored += 100000>><</link>> +| <<link "max" _link>><<set cashX(forceNeg(_maxFood*$farmyardFoodCost), "farmyard"), $foodStored += _maxFood>><</link>> <<if $foodStored > 0>> <br> - <<link "Sell <<= massFormat(1)>>" _link>><<set cashX(($foodCost*1), "farmyard"), $foodStored -= 1>><</link>> + <<link "Sell <<= massFormat(1)>>" _link>><<set cashX(($farmyardFoodCost*1), "farmyard"), $foodStored -= 1>><</link>> <<if $foodStored >= 10>> - | <<link "<<= massFormat(10)>>" _link>><<set cashX(($foodCost*10), "farmyard"), $foodStored -= 10>><</link>> + | <<link "<<= massFormat(10)>>" _link>><<set cashX(($farmyardFoodCost*10), "farmyard"), $foodStored -= 10>><</link>> <</if>> <<if $foodStored >= 100>> - | <<link "<<= massFormat(100)>>" _link>><<set cashX(($foodCost*100), "farmyard"), $foodStored -= 100>><</link>> + | <<link "<<= massFormat(100)>>" _link>><<set cashX(($farmyardFoodCost*100), "farmyard"), $foodStored -= 100>><</link>> <</if>> <<if $foodStored >= 1000>> - | <<link "<<= massFormat(1000)>>" _link>><<set cashX(($foodCost*1000), "farmyard"), $foodStored -= 1000>><</link>> + | <<link "<<= massFormat(1000)>>" _link>><<set cashX(($farmyardFoodCost*1000), "farmyard"), $foodStored -= 1000>><</link>> <</if>> <<if $foodStored >= 10000>> - | <<link "<<= massFormat(10000)>>" _link>><<set cashX(($foodCost*10000), "farmyard"), $foodStored -= 10000>><</link>> + | <<link "<<= massFormat(10000)>>" _link>><<set cashX(($farmyardFoodCost*10000), "farmyard"), $foodStored -= 10000>><</link>> <</if>> - | <<link "max" _link>><<set cashX(($foodCost*$foodStored), "farmyard"), $foodStored = 0>><</link>> + <<if $foodStored >= 100000>> + | <<link "<<= massFormat(100000)>>" _link>><<set cashX(($farmyardFoodCost*100000), "farmyard"), $foodStored -= 100000>><</link>> + <</if>> + | <<link "max" _link>><<set cashX(($farmyardFoodCost*$foodStored), "farmyard"), $foodStored = 0>><</link>> <</if>> <<if $food > 0>> <br> @@ -53,6 +56,9 @@ The food market has @@.chocolate;<<print massFormat($foodStored)>>@@ in storage, <<if $food >= 10000>> | <<link "<<= massFormat(10000)>>" _link>><<set $foodStored += 10000, $food -= 10000>><</link>> <</if>> + <<if $food >= 100000>> + | <<link "<<= massFormat(100000)>>" _link>><<set $foodStored += 100000, $food -= 10000>><</link>> + <</if>> | <<link "max" _link>><<set $foodStored += $food, $food = 0>><</link>> <</if>> <<if $foodStored > 0>> @@ -70,5 +76,8 @@ The food market has @@.chocolate;<<print massFormat($foodStored)>>@@ in storage, <<if $foodStored >= 10000>> | <<link "<<= massFormat(10000)>>" _link>><<set $food += 10000, $foodStored -= 10000>><</link>> <</if>> + <<if $foodStored >= 100000>> + | <<link "<<= massFormat(10000)>>" _link>><<set $food += 100000, $foodStored -= 10000>><</link>> + <</if>> | <<link "max" _link>><<set $food += $foodStored, $foodStored = 0>><</link>> <</if>> diff --git a/src/uncategorized/nextWeek.tw b/src/uncategorized/nextWeek.tw index 2652c2a9703df7c7557ed3ee6c5e0f588cf222e3..231d1ba7985f30cd8ca4151c39c5fa446858f350 100644 --- a/src/uncategorized/nextWeek.tw +++ b/src/uncategorized/nextWeek.tw @@ -84,6 +84,15 @@ <<set $localEcon = 20>> <</if>> + <<if $experimental.food == 1>> + <<if $localEcon > 100>> + <<set $farmyardFoodCost = Math.max(5 / (1 + (Math.trunc(1000-100000/$localEcon)/10)/100), 3.125)>> + <<elseif $localEcon == 100>> + <<set $farmyardFoodCost = 5 >> + <<else>> + <<set $farmyardFoodCost = Math.min(5 * (1 + 1.5 * Math.sqrt(Math.trunc(100000/$localEcon-1000)/10)/100), 6.5)>> + <</if> + <</if> <<set $foodCost = Math.trunc(2500/$localEcon)>> <<set $drugsCost = Math.trunc(10000/$localEcon)>> <<set $rulesCost = Math.trunc(10000/$localEcon)>>