From 49458ea2e77a098c950144db00efc36c0954af76 Mon Sep 17 00:00:00 2001 From: Doodle Date: Wed, 10 Jul 2024 09:34:07 -0400 Subject: [PATCH 1/4] check for kegType using incorrect produce type --- js/main.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/js/main.js b/js/main.js index 7458db9..e7c6b43 100644 --- a/js/main.js +++ b/js/main.js @@ -443,10 +443,10 @@ function profit(crop) { var caskModifier = getCaskModifier(); var dehydratorModifier = getDehydratorModifier(crop); if (options.produce == 1) { - netIncome += itemsMade * (crop.produce.jar != null ? crop.produce.jar : options.skills.arti ? (crop.produce.price * 2 + 50) * 1.4 : crop.produce.price * 2 + 50); + netIncome += itemsMade * (crop.produce.jarType != null ? crop.produce.jarType : options.skills.arti ? (crop.produce.price * 2 + 50) * 1.4 : crop.produce.price * 2 + 50); } else if (options.produce == 2) { - netIncome += itemsMade * (crop.produce.keg != null ? crop.produce.keg * caskModifier : crop.produce.price * kegModifier); + netIncome += itemsMade * (crop.produce.kegType != null && options.aging != "None" ? crop.produce.price * kegModifier * caskModifier : crop.produce.price * kegModifier); } else if (options.produce == 4) { netIncome += crop.produce.dehydratorType != null ? itemsMade * dehydratorModifier : 0; @@ -1089,7 +1089,7 @@ function renderGraph() { var fertilizer = fertilizers[options.fertilizer]; var kegModifier = getKegModifier(d); var caskModifier = getCaskModifier(); - var kegPrice = d.produce.keg != null ? d.produce.keg * caskModifier : d.produce.price * kegModifier * caskModifier; + var kegPrice = d.produce.kegType != null && options.aging != "None" ? d.produce.price * kegModifier * caskModifier : d.produce.price * kegModifier; var dehydratorModifierByCrop = d.produce.dehydratorType != null ? getDehydratorModifier(d): 0; var seedPrice = d.seeds.sell; var initialGrow = 0; From 28efba7288f9e53a5651a9456e03b27bb4323dce Mon Sep 17 00:00:00 2001 From: Doodle Date: Tue, 30 Jul 2024 14:39:08 -0400 Subject: [PATCH 2/4] imporperly returned jarType, update keg/cask forumla --- js/main.js | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/js/main.js b/js/main.js index e7c6b43..f766297 100644 --- a/js/main.js +++ b/js/main.js @@ -208,10 +208,9 @@ function levelRatio(fertilizer, level, isWildseed) { * @return The keg modifier. */ function getKegModifier(crop) { - if (options.skills.arti) { - result = crop.produce.kegType == "Wine" ? 4.2 : 3.15; - } - else { + if (crop.produce.kegType == "Coffee" || crop.produce.kegType == "Tea"){ + result = 1; + } else { result = crop.produce.kegType == "Wine" ? 3 : 2.25; } @@ -225,10 +224,10 @@ function getKegModifier(crop) { */ function getCaskModifier() { switch (options.aging) { - case 1: return options.skills.arti ? 1.75 : 1.25; - case 2: return options.skills.arti ? 2.145 : 1.5; - case 3: return options.skills.arti ? 2.8 : 2; - default: return options.skills.arti ? 1.4 : 1; + case 1: return 1.25; + case 2: return 1.5; + case 3: return 2; + default: return 1; } } @@ -442,16 +441,19 @@ function profit(crop) { var kegModifier = getKegModifier(crop); var caskModifier = getCaskModifier(); var dehydratorModifier = getDehydratorModifier(crop); + var kegPrice = 0; if (options.produce == 1) { - netIncome += itemsMade * (crop.produce.jarType != null ? crop.produce.jarType : options.skills.arti ? (crop.produce.price * 2 + 50) * 1.4 : crop.produce.price * 2 + 50); + netIncome += itemsMade * (crop.produce.jarType == null ? 0 : options.skills.arti ? (crop.produce.price * 2 + 50) * 1.4 : crop.produce.price * 2 + 50); } else if (options.produce == 2) { - netIncome += itemsMade * (crop.produce.kegType != null && options.aging != "None" ? crop.produce.price * kegModifier * caskModifier : crop.produce.price * kegModifier); + kegPrice = crop.produce.keg != null ? crop.produce.keg * kegModifier : crop.produce.kegType != null && options.aging != 0 ? crop.produce.price * kegModifier * caskModifier : crop.produce.price * kegModifier; + netIncome += options.skills.arti ? itemsMade * (kegPrice * 1.4) : itemsMde * kegPrice; } else if (options.produce == 4) { netIncome += crop.produce.dehydratorType != null ? itemsMade * dehydratorModifier : 0; } + profitData.kegPrice = kegPrice; profitData.quantitySold = itemsMade; profitData.excessProduce = cropsLeft; } @@ -1087,9 +1089,6 @@ function renderGraph() { if (options.extra) { var fertilizer = fertilizers[options.fertilizer]; - var kegModifier = getKegModifier(d); - var caskModifier = getCaskModifier(); - var kegPrice = d.produce.kegType != null && options.aging != "None" ? d.produce.price * kegModifier * caskModifier : d.produce.price * kegModifier; var dehydratorModifierByCrop = d.produce.dehydratorType != null ? getDehydratorModifier(d): 0; var seedPrice = d.seeds.sell; var initialGrow = 0; @@ -1144,7 +1143,7 @@ function renderGraph() { tooltipTr = tooltipTable.append("tr"); if (d.produce.kegType) { tooltipTr.append("td").attr("class", "tooltipTdLeft").text("Value (" + d.produce.kegType + "):"); - tooltipTr.append("td").attr("class", "tooltipTdRight").text(Math.round(kegPrice)) + tooltipTr.append("td").attr("class", "tooltipTdRight").text(Math.round(d.profitData.kegPrice)) .append("div").attr("class", "gold"); } else { From d9af93fcd8020b55a8a84b0894a7ee904adc678e Mon Sep 17 00:00:00 2001 From: Doodle Date: Thu, 1 Aug 2024 09:37:31 -0400 Subject: [PATCH 3/4] use kegBasePrice to simplifiy keg/cask conditionals --- js/crops.js | 99 +++++++++++++++++++++++++++++++++++++---------------- js/main.js | 53 +++++++++++++++------------- 2 files changed, 99 insertions(+), 53 deletions(-) diff --git a/js/crops.js b/js/crops.js index 7dfbcc6..39a2295 100644 --- a/js/crops.js +++ b/js/crops.js @@ -25,7 +25,8 @@ var crops = { "extraPerc": 0, "price": 35, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "summersquash": { @@ -49,7 +50,8 @@ var crops = { "extraPerc": 0, "price": 45, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "broccoli": { @@ -73,7 +75,8 @@ var crops = { "extraPerc": 0, "price": 70, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "powdermelon": { @@ -98,6 +101,7 @@ var crops = { "price": 70, "jarType": "Jelly", "kegType": "Wine", + "ages": true, "dehydratorType": "Dried Fruit" } }, @@ -122,7 +126,8 @@ var crops = { "extraPerc": 0, "price": 150, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "grape": { @@ -147,6 +152,7 @@ var crops = { "price": 80, "jarType": "Jelly", "kegType": "Wine", + "ages": true, "dehydratorType": "Raisins" } }, @@ -172,7 +178,8 @@ var crops = { "price": 25, "keg": 300, "jarType": "Pickles", - "kegType": "Pale Ale" + "kegType": "Pale Ale", + "ages": true } }, "pineapple": { @@ -197,6 +204,7 @@ var crops = { "price": 300, "jarType": "Jelly", "kegType": "Wine", + "ages": true, "dehydratorType": "Dried Fruit" } }, @@ -244,7 +252,8 @@ var crops = { "price": 50, "keg": 100, "jarType": "Pickles", - "kegType": "Tea" + "kegType": "Tea", + "ages": false } }, "fairyrose": { @@ -356,7 +365,8 @@ var crops = { "extraPerc": 1, "price": 15, "keg": 150 / 5, - "kegType": "Coffee" + "kegType": "Coffee", + "ages": false } }, "poppy": { @@ -424,7 +434,8 @@ var crops = { "extraPerc": 0, "price": 35, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "greenbean": { @@ -448,7 +459,8 @@ var crops = { "extraPerc": 0, "price": 40, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "cauliflower": { @@ -472,7 +484,8 @@ var crops = { "extraPerc": 0, "price": 175, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "potato": { @@ -496,7 +509,8 @@ var crops = { "extraPerc": 0.25, // technically (0.2^1) + (0.2^2) + (0.2^3) ... "price": 80, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "garlic": { @@ -520,7 +534,8 @@ var crops = { "extraPerc": 0, "price": 60, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "taroroot": { @@ -544,7 +559,8 @@ var crops = { "extraPerc": 0, "price": 100, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "kale": { @@ -568,7 +584,8 @@ var crops = { "extraPerc": 0, "price": 110, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "unmilledrice": { @@ -592,7 +609,8 @@ var crops = { "extraPerc": 0.11, "price": 30, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "rhubarb": { @@ -617,6 +635,7 @@ var crops = { "price": 220, "jarType": "Jelly", "kegType": "Wine", + "ages": true, "dehydratorType": "Dried Fruit" } }, @@ -642,6 +661,7 @@ var crops = { "price": 250, "jarType": "Jelly", "kegType": "Wine", + "ages": true, "dehydratorType": "Dried Fruit" } }, @@ -666,7 +686,8 @@ var crops = { "extraPerc": 0.05, "price": 60, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "blueberry": { @@ -691,6 +712,7 @@ var crops = { "price": 50, "jarType": "Jelly", "kegType": "Wine", + "ages": true, "dehydratorType": "Dried Fruit" } }, @@ -716,6 +738,7 @@ var crops = { "price": 40, "jarType": "Jelly", "kegType": "Wine", + "ages": true, "dehydratorType": "Dried Fruit" } }, @@ -741,7 +764,8 @@ var crops = { "price": 25, "keg": 200, "jarType": "Pickles", - "kegType": "Beer" + "kegType": "Beer", + "ages": true } }, "radish": { @@ -765,7 +789,8 @@ var crops = { "extraPerc": 0, "price": 90, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "redcabbage": { @@ -789,7 +814,8 @@ var crops = { "extraPerc": 0, "price": 260, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "starfruit": { @@ -814,6 +840,7 @@ var crops = { "price": 750, "jarType": "Jelly", "kegType": "Wine", + "ages": true, "dehydratorType": "Dried Fruit" } }, @@ -838,7 +865,8 @@ var crops = { "extraPerc": 0, "price": 50, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "eggplant": { @@ -862,7 +890,8 @@ var crops = { "extraPerc": 0.002, "price": 60, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "artichoke": { @@ -886,7 +915,8 @@ var crops = { "extraPerc": 0, "price": 160, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "pumpkin": { @@ -910,7 +940,8 @@ var crops = { "extraPerc": 0, "price": 320, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "bokchoy": { @@ -934,7 +965,8 @@ var crops = { "extraPerc": 0, "price": 80, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "yam": { @@ -958,7 +990,8 @@ var crops = { "extraPerc": 0, "price": 160, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "cranberries": { @@ -983,6 +1016,7 @@ var crops = { "price": 75, "jarType": "Jelly", "kegType": "Wine", + "ages": true, "dehydratorType": "Dried Fruit" } }, @@ -1007,7 +1041,8 @@ var crops = { "extraPerc": 0, "price": 100, "jarType": "Pickles", - "kegType": "Juice" + "kegType": "Juice", + "ages": false } }, "ancientfruit": { @@ -1032,6 +1067,7 @@ var crops = { "price": 550, "jarType": "Jelly", "kegType": "Wine", + "ages": true, "dehydratorType": "Dried Fruit" } }, @@ -1057,6 +1093,7 @@ var crops = { "price": 75, "jarType": "Jelly", "kegType": "Wine", + "ages": true, "dehydratorType": "Dried Fruit" } }, @@ -1082,6 +1119,7 @@ var crops = { "price": 120, "jarType": "Jelly", "kegType": "Wine", + "ages": true, "dehydratorType": "Dried Fruit" } }, @@ -1131,7 +1169,8 @@ var crops = { // (Spice Berry + Grape + Sweet Pea) / 3 "price": (80 + 80 + 50) / 3, "jarType": "Jelly", - "kegType": "Wine" + "kegType": "Wine", + "ages": true }, "isWildseed": true }, @@ -1157,7 +1196,8 @@ var crops = { // (Blackberry + Common Mushroom + Hazelnut + Wild Plum) / 4 "price": (20 + 40 + 90 + 80) / 4, "jarType": "Jelly", - "kegType": "Wine" + "kegType": "Wine", + "ages": true }, "isWildseed": true }, @@ -1183,7 +1223,8 @@ var crops = { // (Crocus + Crystal Fruit + Snow Yam + Winter Root) / 4 "price": (60 + 150 + 100 + 70) / 4, "jarType": "Jelly", - "kegType": "Wine" + "kegType": "Wine", + "ages": true }, "isWildseed": true } diff --git a/js/main.js b/js/main.js index f766297..979d036 100644 --- a/js/main.js +++ b/js/main.js @@ -203,18 +203,13 @@ function levelRatio(fertilizer, level, isWildseed) { } /* - * Calculates the keg modifier for the crop. + * Calculates the keg base price for the crop. * @param crop The crop object, containing all the crop data. - * @return The keg modifier. + * @return The keg base price. */ -function getKegModifier(crop) { - if (crop.produce.kegType == "Coffee" || crop.produce.kegType == "Tea"){ - result = 1; - } else { - result = crop.produce.kegType == "Wine" ? 3 : 2.25; - } - - return result; +function getKegBasePrice(crop) { + + return crop.produce.keg != null ? crop.produce.keg : crop.produce.kegType == "Wine" ? crop.produce.price * 3 : crop.produce.price * 2.25; } /* @@ -222,13 +217,20 @@ function getKegModifier(crop) { * @param crop The crop object, containing all the crop data. * @return The cask modifier. */ -function getCaskModifier() { - switch (options.aging) { - case 1: return 1.25; - case 2: return 1.5; - case 3: return 2; - default: return 1; - } +function getCaskModifier(crop) { + var modifier = 1 + if (options.aging > 0 && crop.produce.ages){ + switch (options.aging) { + case 1: modifier = 1.25; + break; + case 2: modifier = 1.5; + break; + case 3: modifier = 2; + break; + default: modifier = 1; + } + } + return modifier; } /* @@ -438,22 +440,21 @@ function profit(crop) { cropPrice = options.skills.till ? crop.produce.price * 1.1 : crop.produce.price; netIncome += cropsLeft * cropPrice; - var kegModifier = getKegModifier(crop); - var caskModifier = getCaskModifier(); + var kegBasePrice = getKegBasePrice(crop); + var caskModifier = getCaskModifier(crop); var dehydratorModifier = getDehydratorModifier(crop); var kegPrice = 0; if (options.produce == 1) { netIncome += itemsMade * (crop.produce.jarType == null ? 0 : options.skills.arti ? (crop.produce.price * 2 + 50) * 1.4 : crop.produce.price * 2 + 50); } else if (options.produce == 2) { - kegPrice = crop.produce.keg != null ? crop.produce.keg * kegModifier : crop.produce.kegType != null && options.aging != 0 ? crop.produce.price * kegModifier * caskModifier : crop.produce.price * kegModifier; - netIncome += options.skills.arti ? itemsMade * (kegPrice * 1.4) : itemsMde * kegPrice; + kegPrice = crop.produce.ages ? kegBasePrice * caskModifier : kegBasePrice; + netIncome += options.skills.arti && crop.produce.kegType != "Coffee" ? itemsMade * (kegPrice * 1.4) : itemsMade * kegPrice; } else if (options.produce == 4) { netIncome += crop.produce.dehydratorType != null ? itemsMade * dehydratorModifier : 0; } - profitData.kegPrice = kegPrice; profitData.quantitySold = itemsMade; profitData.excessProduce = cropsLeft; } @@ -1089,6 +1090,10 @@ function renderGraph() { if (options.extra) { var fertilizer = fertilizers[options.fertilizer]; + + var kegBasePrice = getKegBasePrice(d); + var caskModifier = getCaskModifier(d); + var kegPrice = d.produce.ages ? kegBasePrice * caskModifier : kegBasePrice; var dehydratorModifierByCrop = d.produce.dehydratorType != null ? getDehydratorModifier(d): 0; var seedPrice = d.seeds.sell; var initialGrow = 0; @@ -1133,7 +1138,7 @@ function renderGraph() { tooltipTr = tooltipTable.append("tr"); if (d.produce.jarType) { tooltipTr.append("td").attr("class", "tooltipTdLeftSpace").text("Value (" + d.produce.jarType + "):"); - tooltipTr.append("td").attr("class", "tooltipTdRight").text(d.produce.price * 2 + 50) + tooltipTr.append("td").attr("class", "tooltipTdRight").text(options.skills.arti ? Math.round((d.produce.price * 2 + 50) * 1.4) : d.produce.price * 2 + 50) .append("div").attr("class", "gold"); } else { @@ -1143,7 +1148,7 @@ function renderGraph() { tooltipTr = tooltipTable.append("tr"); if (d.produce.kegType) { tooltipTr.append("td").attr("class", "tooltipTdLeft").text("Value (" + d.produce.kegType + "):"); - tooltipTr.append("td").attr("class", "tooltipTdRight").text(Math.round(d.profitData.kegPrice)) + tooltipTr.append("td").attr("class", "tooltipTdRight").text(options.skills.arti && d.produce.kegType != "Coffee" ? Math.round(kegPrice * 1.4) : Math.round(kegPrice)) .append("div").attr("class", "gold"); } else { From 0bcf411dbd2f7a097228ba2747edd7750faf9aff Mon Sep 17 00:00:00 2001 From: Doodle Date: Fri, 2 Aug 2024 08:56:50 -0400 Subject: [PATCH 4/4] getCaskModifier responsible for age check, removed jar edits --- js/main.js | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/js/main.js b/js/main.js index 979d036..565fea6 100644 --- a/js/main.js +++ b/js/main.js @@ -213,24 +213,23 @@ function getKegBasePrice(crop) { } /* - * Calculates the cask modifier for the crop. + * Calculates the cask modifier for the crop based on aging. * @param crop The crop object, containing all the crop data. * @return The cask modifier. */ function getCaskModifier(crop) { - var modifier = 1 - if (options.aging > 0 && crop.produce.ages){ + if (crop.produce.ages){ switch (options.aging) { - case 1: modifier = 1.25; - break; - case 2: modifier = 1.5; - break; - case 3: modifier = 2; - break; - default: modifier = 1; + case 0 : return 1; + case 1: return 1.25; + case 2: return 1.5; + case 3: return 2; + default: return 1; } + } else { + //Is not a Cask Item + return 1; } - return modifier; } /* @@ -445,10 +444,10 @@ function profit(crop) { var dehydratorModifier = getDehydratorModifier(crop); var kegPrice = 0; if (options.produce == 1) { - netIncome += itemsMade * (crop.produce.jarType == null ? 0 : options.skills.arti ? (crop.produce.price * 2 + 50) * 1.4 : crop.produce.price * 2 + 50); + netIncome += itemsMade * (crop.produce.jar != null ? crop.produce.jar : options.skills.arti ? (crop.produce.price * 2 + 50) * 1.4 : crop.produce.price * 2 + 50); } else if (options.produce == 2) { - kegPrice = crop.produce.ages ? kegBasePrice * caskModifier : kegBasePrice; + kegPrice = kegBasePrice * caskModifier netIncome += options.skills.arti && crop.produce.kegType != "Coffee" ? itemsMade * (kegPrice * 1.4) : itemsMade * kegPrice; } else if (options.produce == 4) { @@ -1138,7 +1137,7 @@ function renderGraph() { tooltipTr = tooltipTable.append("tr"); if (d.produce.jarType) { tooltipTr.append("td").attr("class", "tooltipTdLeftSpace").text("Value (" + d.produce.jarType + "):"); - tooltipTr.append("td").attr("class", "tooltipTdRight").text(options.skills.arti ? Math.round((d.produce.price * 2 + 50) * 1.4) : d.produce.price * 2 + 50) + tooltipTr.append("td").attr("class", "tooltipTdRight").text(d.produce.price * 2 + 50) .append("div").attr("class", "gold"); } else {