farming-weight 0.3.10 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +15 -7
  2. package/dist/classes/farmingarmor.d.ts +10 -6
  3. package/dist/classes/farmingarmor.js +49 -4
  4. package/dist/classes/farmingarmor.js.map +1 -1
  5. package/dist/classes/farmingequipment.d.ts +24 -0
  6. package/dist/classes/farmingequipment.js +116 -0
  7. package/dist/classes/farmingequipment.js.map +1 -0
  8. package/dist/classes/item.d.ts +1 -1
  9. package/dist/classes/player.d.ts +5 -4
  10. package/dist/classes/player.js +18 -10
  11. package/dist/classes/player.js.map +1 -1
  12. package/dist/classes/weightcalc.d.ts +12 -3
  13. package/dist/classes/weightcalc.js +43 -18
  14. package/dist/classes/weightcalc.js.map +1 -1
  15. package/dist/classes/weightcalc.test.d.ts +1 -0
  16. package/dist/classes/weightcalc.test.js +108 -0
  17. package/dist/classes/weightcalc.test.js.map +1 -0
  18. package/dist/constants/armor.d.ts +4 -1
  19. package/dist/constants/armor.js +111 -13
  20. package/dist/constants/armor.js.map +1 -1
  21. package/dist/constants/lotus.d.ts +1 -1
  22. package/dist/constants/lotus.js +26 -2
  23. package/dist/constants/lotus.js.map +1 -1
  24. package/dist/constants/pests.d.ts +20 -3
  25. package/dist/constants/pests.js +169 -46
  26. package/dist/constants/pests.js.map +1 -1
  27. package/dist/constants/tools.d.ts +2 -1
  28. package/dist/constants/tools.js +57 -14
  29. package/dist/constants/tools.js.map +1 -1
  30. package/dist/constants/upgrades.d.ts +19 -0
  31. package/dist/constants/upgrades.js +37 -0
  32. package/dist/constants/upgrades.js.map +1 -0
  33. package/dist/constants/weight.d.ts +4 -2
  34. package/dist/constants/weight.js +4 -2
  35. package/dist/constants/weight.js.map +1 -1
  36. package/dist/index.d.ts +5 -1
  37. package/dist/index.js +5 -1
  38. package/dist/index.js.map +1 -1
  39. package/dist/util/gems.js.map +1 -1
  40. package/dist/util/pests.d.ts +4 -0
  41. package/dist/util/pests.js +68 -0
  42. package/dist/util/pests.js.map +1 -0
  43. package/dist/util/pests.test.d.ts +1 -0
  44. package/dist/util/pests.test.js +27 -0
  45. package/dist/util/pests.test.js.map +1 -0
  46. package/package.json +46 -42
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createFarmingWeightCalculator = void 0;
4
4
  const crops_1 = require("../constants/crops");
5
5
  const weight_1 = require("../constants/weight");
6
+ const jacob_1 = require("../util/jacob");
7
+ const pests_1 = require("../util/pests");
6
8
  function createFarmingWeightCalculator(info) {
7
9
  return new FarmingWeight(info);
8
10
  }
@@ -20,14 +22,18 @@ const crops = [
20
22
  crops_1.Crop.Wheat,
21
23
  ];
22
24
  class FarmingWeight {
25
+ info;
23
26
  constructor(info) {
27
+ this.info = info;
24
28
  this.collection = {};
25
29
  this.levelCapUpgrade = info?.levelCapUpgrade ?? 0;
26
30
  this.anitaBonusFarmingFortuneLevel = info?.anitaBonusFarmingFortuneLevel ?? 0;
27
31
  this.farmingXp = info?.farmingXp ?? 0;
28
- this.earnedGoldMedals = 0;
32
+ this.earnedMedals = { diamond: 0, platinum: 0, gold: 0 };
29
33
  this.tier12MinionCount = 0;
30
34
  this.bonusSources = {};
35
+ this.uncountedCrops = {};
36
+ this.calcUncountedCrops(info?.pests ?? {});
31
37
  this.setCropsFromCollections(info?.collection ?? {});
32
38
  this.addMinions(info?.minions ?? []);
33
39
  }
@@ -70,8 +76,12 @@ class FarmingWeight {
70
76
  }
71
77
  return this;
72
78
  };
73
- setEarnedGoldMedals = (count) => {
74
- this.earnedGoldMedals = count;
79
+ setEarnedMedals = ({ diamond, platinum, gold }) => {
80
+ this.earnedMedals = {
81
+ diamond: diamond ?? this.earnedMedals.diamond,
82
+ platinum: platinum ?? this.earnedMedals.platinum,
83
+ gold: gold ?? this.earnedMedals.gold,
84
+ };
75
85
  return this;
76
86
  };
77
87
  setTier12MinionCount = (count) => {
@@ -82,16 +92,17 @@ class FarmingWeight {
82
92
  if (!contests?.length)
83
93
  return this;
84
94
  for (const contest of contests) {
85
- if (contest.claimed_medal === 'gold') {
86
- this.earnedGoldMedals++;
95
+ const medal = (0, jacob_1.calculateJacobContestMedal)(contest);
96
+ if (!medal)
87
97
  continue;
98
+ if (medal === 'diamond') {
99
+ this.earnedMedals.diamond += contest.collected;
88
100
  }
89
- const position = contest.claimed_position;
90
- const participants = contest.claimed_participants;
91
- if (position === undefined || participants === undefined)
92
- continue;
93
- if (position <= participants * 0.05 + 1) {
94
- this.earnedGoldMedals++;
101
+ else if (medal === 'platinum') {
102
+ this.earnedMedals.platinum += contest.collected;
103
+ }
104
+ else if (medal === 'gold') {
105
+ this.earnedMedals.gold += contest.collected;
95
106
  }
96
107
  }
97
108
  return this;
@@ -106,6 +117,7 @@ class FarmingWeight {
106
117
  bonusWeight: bonusTotal,
107
118
  cropWeight: cropTotal,
108
119
  bonusSources: bonus,
120
+ uncountedCrops: this.uncountedCrops,
109
121
  };
110
122
  };
111
123
  getBonusWeights = () => {
@@ -127,14 +139,18 @@ class FarmingWeight {
127
139
  this.bonusSources['Anita Bonus'] =
128
140
  this.anitaBonusFarmingFortuneLevel * weight_1.BONUS_WEIGHT.AnitaBuffBonusMultiplier;
129
141
  }
130
- if (this.earnedGoldMedals > weight_1.BONUS_WEIGHT.MaxMedalsCounted) {
131
- this.bonusSources['Gold Medals'] = Math.floor(weight_1.BONUS_WEIGHT.WeightPerGoldMedal * weight_1.BONUS_WEIGHT.MaxMedalsCounted);
142
+ const maxMedals = weight_1.BONUS_WEIGHT.MaxMedalsCounted;
143
+ if (this.earnedMedals.diamond >= maxMedals) {
144
+ this.bonusSources['Contest Medals'] = weight_1.BONUS_WEIGHT.WeightPerDiamondMedal * weight_1.BONUS_WEIGHT.MaxMedalsCounted;
132
145
  }
133
146
  else {
134
- const rewardCount = Math.floor((this.earnedGoldMedals / 50) * 50);
135
- if (rewardCount > 0) {
136
- this.bonusSources['Gold Medals'] = Math.floor(weight_1.BONUS_WEIGHT.WeightPerGoldMedal * rewardCount);
137
- }
147
+ const diamond = this.earnedMedals.diamond;
148
+ const platinum = Math.min(maxMedals - diamond, this.earnedMedals.platinum);
149
+ const gold = Math.min(maxMedals - diamond - platinum, this.earnedMedals.gold);
150
+ const medals = diamond * weight_1.BONUS_WEIGHT.WeightPerDiamondMedal +
151
+ platinum * weight_1.BONUS_WEIGHT.WeightPerPlatinumMedal +
152
+ gold * weight_1.BONUS_WEIGHT.WeightPerGoldMedal;
153
+ this.bonusSources['Contest Medals'] = medals;
138
154
  }
139
155
  return this.bonusSources;
140
156
  };
@@ -143,7 +159,11 @@ class FarmingWeight {
143
159
  let totalWeight = 0;
144
160
  let doubleBreakWeight = 0;
145
161
  for (const crop of crops) {
146
- const collected = this.collection[crop] ?? 0;
162
+ let collected = this.collection[crop] ?? 0;
163
+ // Subtract uncounted crops
164
+ if (this.uncountedCrops[crop]) {
165
+ collected = Math.max(0, collected - (this.uncountedCrops[crop] ?? 0));
166
+ }
147
167
  const weight = collected / weight_1.CROP_WEIGHT[crop];
148
168
  totalWeight += weight;
149
169
  if (crop === crops_1.Crop.Cactus || crop === crops_1.Crop.SugarCane) {
@@ -163,6 +183,11 @@ class FarmingWeight {
163
183
  cropWeight[crops_1.Crop.Mushroom] = mushroomWeight;
164
184
  return cropWeight;
165
185
  };
186
+ calcUncountedCrops = (bestiary) => {
187
+ this.uncountedCrops = (0, pests_1.uncountedCropsFromPests)(bestiary);
188
+ this.getCropWeights();
189
+ return this;
190
+ };
166
191
  getCropWeight = (crop) => {
167
192
  weight_1.CROP_WEIGHT[crop];
168
193
  };
@@ -1 +1 @@
1
- {"version":3,"file":"weightcalc.js","sourceRoot":"","sources":["../../src/classes/weightcalc.ts"],"names":[],"mappings":";;;AAAA,8CAA0C;AAC1C,gDAAiF;AAEjF,SAAgB,6BAA6B,CAAC,IAAwB;IACrE,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAFD,sEAEC;AAED,MAAM,KAAK,GAAG;IACb,YAAI,CAAC,MAAM;IACX,YAAI,CAAC,MAAM;IACX,YAAI,CAAC,UAAU;IACf,YAAI,CAAC,KAAK;IACV,YAAI,CAAC,QAAQ;IACb,YAAI,CAAC,UAAU;IACf,YAAI,CAAC,MAAM;IACX,YAAI,CAAC,OAAO;IACZ,YAAI,CAAC,SAAS;IACd,YAAI,CAAC,KAAK;CACV,CAAC;AAgBF,MAAM,aAAa;IAUlB,YAAY,IAAwB;QACnC,IAAI,CAAC,UAAU,GAAG,EAA0B,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,IAAI,EAAE,eAAe,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,6BAA6B,GAAG,IAAI,EAAE,6BAA6B,IAAI,CAAC,CAAC;QAC9E,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,EAA4B,CAAC;QAEjD,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,uBAAuB,CAAC,WAAmC;QAC1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC/C;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,GAAG,CAAC,IAAU,EAAE,UAAkB,EAAE,EAAE;QAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QACnC,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IAEF,WAAW,GAAG,CAAC,QAAgB,EAAE,EAAE;QAClC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;QAChC,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IAEF,YAAY,GAAG,CAAC,SAAiB,EAAE,EAAE;QACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IAEF,kBAAkB,GAAG,CAAC,6BAAqC,EAAE,EAAE;QAC9D,IAAI,CAAC,6BAA6B,GAAG,6BAA6B,CAAC;QACnE,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IAEF,UAAU,GAAG,CAAC,OAAiB,EAAE,EAAE;QAClC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,SAAS;YACtC,IAAI,CAAC,wBAAe,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,SAAS;YAEhD,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACzB;QACD,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IAEF,mBAAmB,GAAG,CAAC,KAAa,EAAE,EAAE;QACvC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IAEF,oBAAoB,GAAG,CAAC,KAAa,EAAE,EAAE;QACxC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IAEF,WAAW,GAAG,CAAC,QAAuC,EAAE,EAAE;QACzD,IAAI,CAAC,QAAQ,EAAE,MAAM;YAAE,OAAO,IAAI,CAAC;QAEnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC/B,IAAI,OAAO,CAAC,aAAa,KAAK,MAAM,EAAE;gBACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,SAAS;aACT;YAED,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAC1C,MAAM,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC;YAElD,IAAI,QAAQ,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS;gBAAE,SAAS;YAEnE,IAAI,QAAQ,IAAI,YAAY,GAAG,IAAI,GAAG,CAAC,EAAE;gBACxC,IAAI,CAAC,gBAAgB,EAAE,CAAC;aACxB;SACD;QAED,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IAEF,aAAa,GAAG,GAAG,EAAE;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEpC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAElE,OAAO;YACN,WAAW,EAAE,UAAU,GAAG,SAAS;YACnC,WAAW,EAAE,UAAU;YACvB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,KAAK;SACnB,CAAC;IACH,CAAC,CAAC;IAEF,eAAe,GAAG,GAAG,EAAE;QACtB,IAAI,CAAC,YAAY,GAAG,EAA4B,CAAC;QAEjD,IAAI,IAAI,CAAC,SAAS,IAAI,WAAW,IAAI,IAAI,CAAC,eAAe,IAAI,EAAE,EAAE;YAChE,mBAAmB;YACnB,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,qBAAY,CAAC,cAAc,CAAC;SAC9D;aAAM,IAAI,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE;YACxC,mBAAmB;YACnB,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,qBAAY,CAAC,cAAc,CAAC;SAC9D;QAED,uBAAuB;QACvB,IAAI,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAAE;YAC/B,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,iBAAiB,GAAG,qBAAY,CAAC,kBAAkB,CAAC;SAChG;QAED,cAAc;QACd,IAAI,IAAI,CAAC,6BAA6B,GAAG,CAAC,EAAE;YAC3C,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;gBAC/B,IAAI,CAAC,6BAA6B,GAAG,qBAAY,CAAC,wBAAwB,CAAC;SAC5E;QAED,IAAI,IAAI,CAAC,gBAAgB,GAAG,qBAAY,CAAC,gBAAgB,EAAE;YAC1D,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,KAAK,CAC5C,qBAAY,CAAC,kBAAkB,GAAG,qBAAY,CAAC,gBAAgB,CAC/D,CAAC;SACF;aAAM;YACN,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;YAClE,IAAI,WAAW,GAAG,CAAC,EAAE;gBACpB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAY,CAAC,kBAAkB,GAAG,WAAW,CAAC,CAAC;aAC7F;SACD;QAED,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC,CAAC;IAEF,cAAc,GAAG,GAAG,EAAE;QACrB,MAAM,UAAU,GAAG,EAA0B,CAAC;QAC9C,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAE1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACzB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,SAAS,GAAG,oBAAW,CAAC,IAAI,CAAC,CAAC;YAE7C,WAAW,IAAI,MAAM,CAAC;YAEtB,IAAI,IAAI,KAAK,YAAI,CAAC,MAAM,IAAI,IAAI,KAAK,YAAI,CAAC,SAAS,EAAE;gBACpD,iBAAiB,IAAI,MAAM,CAAC;aAC5B;YAED,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;SAC1B;QAED,iFAAiF;QACjF,gFAAgF;QAChF,qEAAqE;QACrE,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,YAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,oBAAoB,GAAG,oBAAW,CAAC,YAAI,CAAC,QAAQ,CAAC,CAAC;QAExD,MAAM,gBAAgB,GAAG,iBAAiB,GAAG,WAAW,CAAC;QACzD,MAAM,eAAe,GAAG,CAAC,WAAW,GAAG,iBAAiB,CAAC,GAAG,WAAW,CAAC;QAExE,MAAM,cAAc,GACnB,gBAAgB,GAAG,CAAC,kBAAkB,GAAG,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC;YACpE,eAAe,GAAG,CAAC,kBAAkB,GAAG,oBAAoB,CAAC,CAAC;QAE/D,UAAU,CAAC,YAAI,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC;QAE3C,OAAO,UAAU,CAAC;IACnB,CAAC,CAAC;IAEF,aAAa,GAAG,CAAC,IAAU,EAAE,EAAE;QAC9B,oBAAW,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC;CACF"}
1
+ {"version":3,"file":"weightcalc.js","sourceRoot":"","sources":["../../src/classes/weightcalc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const weightcalc_1 = require("./weightcalc");
5
+ const crops_1 = require("../constants/crops");
6
+ const weight_1 = require("../constants/weight");
7
+ const pests_1 = require("../util/pests");
8
+ const crops = {
9
+ [crops_1.Crop.Cactus]: weight_1.CROP_WEIGHT[crops_1.Crop.Cactus] * 50,
10
+ [crops_1.Crop.Carrot]: weight_1.CROP_WEIGHT[crops_1.Crop.Carrot] * 10,
11
+ [crops_1.Crop.CocoaBeans]: weight_1.CROP_WEIGHT[crops_1.Crop.CocoaBeans] * 10,
12
+ [crops_1.Crop.Melon]: weight_1.CROP_WEIGHT[crops_1.Crop.Melon] * 10,
13
+ [crops_1.Crop.NetherWart]: weight_1.CROP_WEIGHT[crops_1.Crop.NetherWart] * 10,
14
+ [crops_1.Crop.Potato]: weight_1.CROP_WEIGHT[crops_1.Crop.Potato] * 10,
15
+ [crops_1.Crop.Pumpkin]: weight_1.CROP_WEIGHT[crops_1.Crop.Pumpkin] * 10,
16
+ [crops_1.Crop.SugarCane]: weight_1.CROP_WEIGHT[crops_1.Crop.SugarCane] * 50,
17
+ [crops_1.Crop.Wheat]: weight_1.CROP_WEIGHT[crops_1.Crop.Wheat] * 10,
18
+ };
19
+ const pests = {
20
+ pest_fly_1: 150,
21
+ pest_beetle_1: 86,
22
+ };
23
+ (0, vitest_1.test)('Basic weight calculation', () => {
24
+ const weight = (0, weightcalc_1.createFarmingWeightCalculator)({
25
+ collection: crops,
26
+ });
27
+ (0, vitest_1.expect)(weight.getWeightInfo().totalWeight).toBeCloseTo(170);
28
+ });
29
+ (0, vitest_1.test)('Mushroom weight calculation', () => {
30
+ const weight = (0, weightcalc_1.createFarmingWeightCalculator)({
31
+ collection: {
32
+ ...crops,
33
+ [crops_1.Crop.Mushroom]: weight_1.CROP_WEIGHT[crops_1.Crop.Mushroom] * 13.74,
34
+ },
35
+ });
36
+ (0, vitest_1.expect)(weight.getWeightInfo().totalWeight).toBeCloseTo(180);
37
+ });
38
+ (0, vitest_1.test)('Pest debuff weight calculation', () => {
39
+ const weight = (0, weightcalc_1.createFarmingWeightCalculator)({
40
+ collection: crops,
41
+ pests: pests,
42
+ });
43
+ const uncounted = (0, pests_1.uncountedCropsFromPests)(pests);
44
+ const uncountedWheat = uncounted[crops_1.Crop.Wheat] ?? 0;
45
+ const uncountedWart = uncounted[crops_1.Crop.NetherWart] ?? 0;
46
+ (0, vitest_1.expect)(weight.getWeightInfo().uncountedCrops[crops_1.Crop.Wheat]).toBeCloseTo(uncountedWheat);
47
+ (0, vitest_1.expect)(weight.getWeightInfo().uncountedCrops[crops_1.Crop.NetherWart]).toBeCloseTo(uncountedWart);
48
+ const weightExpected = (0, weightcalc_1.createFarmingWeightCalculator)({
49
+ collection: {
50
+ ...crops,
51
+ [crops_1.Crop.Wheat]: crops[crops_1.Crop.Wheat] - uncountedWheat,
52
+ [crops_1.Crop.NetherWart]: crops[crops_1.Crop.NetherWart] - uncountedWart,
53
+ },
54
+ });
55
+ (0, vitest_1.expect)(weight.getWeightInfo().cropWeight).toBeCloseTo(weightExpected.getWeightInfo().cropWeight);
56
+ });
57
+ (0, vitest_1.test)('Full weight calculation', () => {
58
+ const crops = {
59
+ [crops_1.Crop.Cactus]: 1219395,
60
+ [crops_1.Crop.Carrot]: 14238991,
61
+ [crops_1.Crop.CocoaBeans]: 901826,
62
+ [crops_1.Crop.Melon]: 5041491,
63
+ [crops_1.Crop.Mushroom]: 9063168,
64
+ [crops_1.Crop.NetherWart]: 897212645,
65
+ [crops_1.Crop.Potato]: 171017100,
66
+ [crops_1.Crop.Pumpkin]: 1496477,
67
+ [crops_1.Crop.SugarCane]: 15509429,
68
+ [crops_1.Crop.Wheat]: 21996256,
69
+ };
70
+ const pests = {
71
+ pest_fly_1: 222,
72
+ pest_rat_1: 40,
73
+ pest_mite_1: 43,
74
+ pest_moth_1: 40,
75
+ pest_slug_1: 34,
76
+ pest_worm_1: 32,
77
+ pest_beetle_1: 265,
78
+ pest_locust_1: 41,
79
+ pest_cricket_1: 36,
80
+ pest_mosquito_1: 41,
81
+ };
82
+ const minions = [
83
+ 'WHEAT_11',
84
+ 'CARROT_11',
85
+ 'POTATO_12',
86
+ 'PUMPKIN_12',
87
+ 'MELON_12',
88
+ 'MUSHROOM_12',
89
+ 'COCOA_11',
90
+ 'CACTUS_11',
91
+ 'SUGAR_CANE_12',
92
+ 'NETHER_WARTS_12',
93
+ ];
94
+ const weight = (0, weightcalc_1.createFarmingWeightCalculator)({
95
+ collection: crops,
96
+ pests: pests,
97
+ farmingXp: 286958923.31966937,
98
+ levelCapUpgrade: 10,
99
+ anitaBonusFarmingFortuneLevel: 15,
100
+ minions: minions,
101
+ }).setEarnedMedals({
102
+ diamond: 246,
103
+ platinum: 75,
104
+ gold: 99,
105
+ });
106
+ (0, vitest_1.expect)(weight.getWeightInfo().totalWeight).toBeCloseTo(5176.617);
107
+ });
108
+ //# sourceMappingURL=weightcalc.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weightcalc.test.js","sourceRoot":"","sources":["../../src/classes/weightcalc.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Rarity, ReforgeTarget, Stat } from './reforges';
2
2
  import { Skill } from './skills';
3
3
  import { SpecialCrop } from './specialcrops';
4
+ import { Upgrade } from './upgrades';
4
5
  export declare enum GearSlot {
5
6
  Boots = "Boots",
6
7
  Leggings = "Leggings",
@@ -17,9 +18,10 @@ export interface FarmingArmorInfo {
17
18
  family?: string;
18
19
  name: string;
19
20
  maxRarity: Rarity;
20
- upgrade?: string;
21
+ upgrade?: Upgrade;
21
22
  wiki: string;
22
23
  stats?: Partial<Record<Stat, number>>;
24
+ contestStatsMultiplier?: number;
23
25
  perLevelStats?: {
24
26
  skill: Skill;
25
27
  appliesTo?: ReforgeTarget[];
@@ -31,6 +33,7 @@ export declare const ARMOR_INFO: Record<string, FarmingArmorInfo>;
31
33
  export type ArmorSetBonusStats = Partial<Record<number, Partial<Record<Stat, number>>>>;
32
34
  export interface ArmorSetBonus {
33
35
  name: string;
36
+ piecePotential?: Partial<Record<Stat, number>>;
34
37
  stats: ArmorSetBonusStats;
35
38
  special?: SpecialCrop[];
36
39
  }
@@ -4,6 +4,7 @@ exports.ARMOR_SET_BONUS = exports.ARMOR_INFO = exports.GearSlot = void 0;
4
4
  const reforges_1 = require("./reforges");
5
5
  const skills_1 = require("./skills");
6
6
  const specialcrops_1 = require("./specialcrops");
7
+ const upgrades_1 = require("./upgrades");
7
8
  var GearSlot;
8
9
  (function (GearSlot) {
9
10
  GearSlot["Boots"] = "Boots";
@@ -18,8 +19,11 @@ var GearSlot;
18
19
  exports.ARMOR_INFO = {
19
20
  FARMER_BOOTS: {
20
21
  name: 'Farmer Boots',
21
- upgrade: 'RANCHERS_BOOTS',
22
22
  wiki: 'https://wiki.hypixel.net/Farmer_Boots',
23
+ upgrade: {
24
+ id: 'RANCHERS_BOOTS',
25
+ reason: upgrades_1.UpgradeReason.Standard,
26
+ },
23
27
  maxRarity: reforges_1.Rarity.Rare,
24
28
  slot: GearSlot.Boots,
25
29
  skillReq: {
@@ -35,6 +39,11 @@ exports.ARMOR_INFO = {
35
39
  RANCHERS_BOOTS: {
36
40
  name: "Rancher's Boots",
37
41
  wiki: 'https://wiki.hypixel.net/Rancher%27s_Boots',
42
+ upgrade: {
43
+ id: 'FERMENTO_BOOTS',
44
+ reason: upgrades_1.UpgradeReason.Situational,
45
+ why: 'Fermento Boots provide more farming fortune, with the tradeoff of not being able to control your speed.',
46
+ },
38
47
  maxRarity: reforges_1.Rarity.Legendary,
39
48
  slot: GearSlot.Boots,
40
49
  skillReq: {
@@ -50,6 +59,10 @@ exports.ARMOR_INFO = {
50
59
  ENCHANTED_JACK_O_LANTERN: {
51
60
  name: 'Lantern Helmet',
52
61
  wiki: 'https://wiki.hypixel.net/Lantern_Helmet',
62
+ upgrade: {
63
+ id: 'FERMENTO_HELMET',
64
+ reason: upgrades_1.UpgradeReason.DeadEnd,
65
+ },
53
66
  maxRarity: reforges_1.Rarity.Rare,
54
67
  slot: GearSlot.Helmet,
55
68
  skillReq: {
@@ -66,6 +79,10 @@ exports.ARMOR_INFO = {
66
79
  FARM_ARMOR_HELMET: {
67
80
  name: 'Farm Armor Helmet',
68
81
  wiki: 'https://wiki.hypixel.net/Farm_Armor',
82
+ upgrade: {
83
+ id: 'MELON_HELMET',
84
+ reason: upgrades_1.UpgradeReason.DeadEnd,
85
+ },
69
86
  family: 'FARM_ARMOR',
70
87
  slot: GearSlot.Helmet,
71
88
  maxRarity: reforges_1.Rarity.Epic,
@@ -79,6 +96,10 @@ exports.ARMOR_INFO = {
79
96
  FARM_ARMOR_CHESTPLATE: {
80
97
  name: 'Farm Armor Chestplate',
81
98
  wiki: 'https://wiki.hypixel.net/Farm_Armor',
99
+ upgrade: {
100
+ id: 'MELON_CHESTPLATE',
101
+ reason: upgrades_1.UpgradeReason.DeadEnd,
102
+ },
82
103
  family: 'FARM_ARMOR',
83
104
  slot: GearSlot.Chestplate,
84
105
  maxRarity: reforges_1.Rarity.Epic,
@@ -92,6 +113,10 @@ exports.ARMOR_INFO = {
92
113
  FARM_ARMOR_LEGGINGS: {
93
114
  name: 'Farm Armor Leggings',
94
115
  wiki: 'https://wiki.hypixel.net/Farm_Armor',
116
+ upgrade: {
117
+ id: 'MELON_LEGGINGS',
118
+ reason: upgrades_1.UpgradeReason.DeadEnd,
119
+ },
95
120
  family: 'FARM_ARMOR',
96
121
  slot: GearSlot.Leggings,
97
122
  maxRarity: reforges_1.Rarity.Epic,
@@ -105,6 +130,10 @@ exports.ARMOR_INFO = {
105
130
  FARM_ARMOR_BOOTS: {
106
131
  name: 'Farm Armor Boots',
107
132
  wiki: 'https://wiki.hypixel.net/Farm_Armor',
133
+ upgrade: {
134
+ id: 'MELON_BOOTS',
135
+ reason: upgrades_1.UpgradeReason.DeadEnd,
136
+ },
108
137
  family: 'FARM_ARMOR',
109
138
  slot: GearSlot.Boots,
110
139
  maxRarity: reforges_1.Rarity.Epic,
@@ -118,6 +147,10 @@ exports.ARMOR_INFO = {
118
147
  RABBIT_HELMET: {
119
148
  name: 'Rabbit Helmet',
120
149
  wiki: 'https://wiki.hypixel.net/Rabbit_Armor',
150
+ upgrade: {
151
+ id: 'MELON_HELMET',
152
+ reason: upgrades_1.UpgradeReason.DeadEnd,
153
+ },
121
154
  family: 'RABBIT',
122
155
  slot: GearSlot.Helmet,
123
156
  maxRarity: reforges_1.Rarity.Uncommon,
@@ -131,6 +164,10 @@ exports.ARMOR_INFO = {
131
164
  RABBIT_CHESTPLATE: {
132
165
  name: 'Rabbit Chestplate',
133
166
  wiki: 'https://wiki.hypixel.net/Rabbit_Armor',
167
+ upgrade: {
168
+ id: 'MELON_CHESTPLATE',
169
+ reason: upgrades_1.UpgradeReason.DeadEnd,
170
+ },
134
171
  family: 'RABBIT',
135
172
  slot: GearSlot.Chestplate,
136
173
  maxRarity: reforges_1.Rarity.Uncommon,
@@ -144,6 +181,10 @@ exports.ARMOR_INFO = {
144
181
  RABBIT_LEGGINGS: {
145
182
  name: 'Rabbit Leggings',
146
183
  wiki: 'https://wiki.hypixel.net/Rabbit_Armor',
184
+ upgrade: {
185
+ id: 'MELON_LEGGINGS',
186
+ reason: upgrades_1.UpgradeReason.DeadEnd,
187
+ },
147
188
  family: 'RABBIT',
148
189
  slot: GearSlot.Leggings,
149
190
  maxRarity: reforges_1.Rarity.Uncommon,
@@ -157,6 +198,10 @@ exports.ARMOR_INFO = {
157
198
  RABBIT_BOOTS: {
158
199
  name: 'Rabbit Boots',
159
200
  wiki: 'https://wiki.hypixel.net/Rabbit_Armor',
201
+ upgrade: {
202
+ id: 'MELON_BOOTS',
203
+ reason: upgrades_1.UpgradeReason.DeadEnd,
204
+ },
160
205
  family: 'RABBIT',
161
206
  slot: GearSlot.Boots,
162
207
  maxRarity: reforges_1.Rarity.Uncommon,
@@ -170,7 +215,10 @@ exports.ARMOR_INFO = {
170
215
  MELON_HELMET: {
171
216
  name: 'Melon Helmet',
172
217
  wiki: 'https://wiki.hypixel.net/Melon_Armor',
173
- upgrade: 'CROPIE_HELMET',
218
+ upgrade: {
219
+ id: 'CROPIE_HELMET',
220
+ reason: upgrades_1.UpgradeReason.Standard,
221
+ },
174
222
  family: 'MELON',
175
223
  special: [specialcrops_1.SpecialCrop.Cropie],
176
224
  slot: GearSlot.Helmet,
@@ -185,7 +233,10 @@ exports.ARMOR_INFO = {
185
233
  MELON_CHESTPLATE: {
186
234
  name: 'Melon Chestplate',
187
235
  wiki: 'https://wiki.hypixel.net/Melon_Armor',
188
- upgrade: 'CROPIE_CHESTPLATE',
236
+ upgrade: {
237
+ id: 'CROPIE_CHESTPLATE',
238
+ reason: upgrades_1.UpgradeReason.Standard,
239
+ },
189
240
  family: 'MELON',
190
241
  special: [specialcrops_1.SpecialCrop.Cropie],
191
242
  slot: GearSlot.Chestplate,
@@ -200,7 +251,10 @@ exports.ARMOR_INFO = {
200
251
  MELON_LEGGINGS: {
201
252
  name: 'Melon Leggings',
202
253
  wiki: 'https://wiki.hypixel.net/Melon_Armor',
203
- upgrade: 'CROPIE_LEGGINGS',
254
+ upgrade: {
255
+ id: 'CROPIE_LEGGINGS',
256
+ reason: upgrades_1.UpgradeReason.Standard,
257
+ },
204
258
  family: 'MELON',
205
259
  special: [specialcrops_1.SpecialCrop.Cropie],
206
260
  slot: GearSlot.Leggings,
@@ -215,7 +269,10 @@ exports.ARMOR_INFO = {
215
269
  MELON_BOOTS: {
216
270
  name: 'Melon Boots',
217
271
  wiki: 'https://wiki.hypixel.net/Melon_Armor',
218
- upgrade: 'CROPIE_BOOTS',
272
+ upgrade: {
273
+ id: 'CROPIE_BOOTS',
274
+ reason: upgrades_1.UpgradeReason.Standard,
275
+ },
219
276
  family: 'MELON',
220
277
  special: [specialcrops_1.SpecialCrop.Cropie],
221
278
  slot: GearSlot.Boots,
@@ -230,7 +287,10 @@ exports.ARMOR_INFO = {
230
287
  CROPIE_HELMET: {
231
288
  name: 'Cropie Helmet',
232
289
  wiki: 'https://wiki.hypixel.net/Cropie_Armor',
233
- upgrade: 'SQUASH_HELMET',
290
+ upgrade: {
291
+ id: 'SQUASH_HELMET',
292
+ reason: upgrades_1.UpgradeReason.Standard,
293
+ },
234
294
  family: 'CROPIE',
235
295
  special: [specialcrops_1.SpecialCrop.Squash],
236
296
  slot: GearSlot.Helmet,
@@ -245,7 +305,10 @@ exports.ARMOR_INFO = {
245
305
  CROPIE_CHESTPLATE: {
246
306
  name: 'Cropie Chestplate',
247
307
  wiki: 'https://wiki.hypixel.net/Cropie_Armor',
248
- upgrade: 'SQUASH_CHESTPLATE',
308
+ upgrade: {
309
+ id: 'SQUASH_CHESTPLATE',
310
+ reason: upgrades_1.UpgradeReason.Standard,
311
+ },
249
312
  family: 'CROPIE',
250
313
  special: [specialcrops_1.SpecialCrop.Squash],
251
314
  slot: GearSlot.Chestplate,
@@ -260,7 +323,10 @@ exports.ARMOR_INFO = {
260
323
  CROPIE_LEGGINGS: {
261
324
  name: 'Cropie Leggings',
262
325
  wiki: 'https://wiki.hypixel.net/Cropie_Armor',
263
- upgrade: 'SQUASH_LEGGINGS',
326
+ upgrade: {
327
+ id: 'SQUASH_LEGGINGS',
328
+ reason: upgrades_1.UpgradeReason.Standard,
329
+ },
264
330
  family: 'CROPIE',
265
331
  special: [specialcrops_1.SpecialCrop.Squash],
266
332
  slot: GearSlot.Leggings,
@@ -275,7 +341,10 @@ exports.ARMOR_INFO = {
275
341
  CROPIE_BOOTS: {
276
342
  name: 'Cropie Boots',
277
343
  wiki: 'https://wiki.hypixel.net/Cropie_Armor',
278
- upgrade: 'SQUASH_BOOTS',
344
+ upgrade: {
345
+ id: 'SQUASH_BOOTS',
346
+ reason: upgrades_1.UpgradeReason.Standard,
347
+ },
279
348
  family: 'CROPIE',
280
349
  special: [specialcrops_1.SpecialCrop.Squash],
281
350
  slot: GearSlot.Boots,
@@ -290,7 +359,10 @@ exports.ARMOR_INFO = {
290
359
  SQUASH_HELMET: {
291
360
  name: 'Squash Helmet',
292
361
  wiki: 'https://wiki.hypixel.net/Squash_Armor',
293
- upgrade: 'FERMENTO_HELMET',
362
+ upgrade: {
363
+ id: 'FERMENTO_HELMET',
364
+ reason: upgrades_1.UpgradeReason.Standard,
365
+ },
294
366
  family: 'SQUASH',
295
367
  special: [specialcrops_1.SpecialCrop.Fermento],
296
368
  slot: GearSlot.Helmet,
@@ -305,7 +377,10 @@ exports.ARMOR_INFO = {
305
377
  SQUASH_CHESTPLATE: {
306
378
  name: 'Squash Chestplate',
307
379
  wiki: 'https://wiki.hypixel.net/Squash_Armor',
308
- upgrade: 'FERMENTO_CHESTPLATE',
380
+ upgrade: {
381
+ id: 'FERMENTO_CHESTPLATE',
382
+ reason: upgrades_1.UpgradeReason.Standard,
383
+ },
309
384
  family: 'SQUASH',
310
385
  special: [specialcrops_1.SpecialCrop.Fermento],
311
386
  slot: GearSlot.Chestplate,
@@ -320,7 +395,10 @@ exports.ARMOR_INFO = {
320
395
  SQUASH_LEGGINGS: {
321
396
  name: 'Squash Leggings',
322
397
  wiki: 'https://wiki.hypixel.net/Squash_Armor',
323
- upgrade: 'FERMENTO_LEGGINGS',
398
+ upgrade: {
399
+ id: 'FERMENTO_LEGGINGS',
400
+ reason: upgrades_1.UpgradeReason.Standard,
401
+ },
324
402
  family: 'SQUASH',
325
403
  special: [specialcrops_1.SpecialCrop.Fermento],
326
404
  slot: GearSlot.Leggings,
@@ -335,7 +413,10 @@ exports.ARMOR_INFO = {
335
413
  SQUASH_BOOTS: {
336
414
  name: 'Squash Boots',
337
415
  wiki: 'https://wiki.hypixel.net/Squash_Armor',
338
- upgrade: 'FERMENTO_BOOTS',
416
+ upgrade: {
417
+ id: 'FERMENTO_BOOTS',
418
+ reason: upgrades_1.UpgradeReason.Standard,
419
+ },
339
420
  family: 'SQUASH',
340
421
  special: [specialcrops_1.SpecialCrop.Fermento],
341
422
  slot: GearSlot.Boots,
@@ -392,6 +473,11 @@ exports.ARMOR_INFO = {
392
473
  FERMENTO_BOOTS: {
393
474
  name: 'Fermento Boots',
394
475
  wiki: 'https://wiki.hypixel.net/Fermento_Armor',
476
+ upgrade: {
477
+ id: 'RANCHERS_BOOTS',
478
+ reason: upgrades_1.UpgradeReason.Situational,
479
+ why: 'Rancher\'s Boots provide less farming fortune, but allow you to control your speed for tricky farms.',
480
+ },
395
481
  family: 'FERMENTO',
396
482
  special: [specialcrops_1.SpecialCrop.Cropie, specialcrops_1.SpecialCrop.Squash, specialcrops_1.SpecialCrop.Fermento],
397
483
  slot: GearSlot.Boots,
@@ -415,6 +501,9 @@ exports.ARMOR_SET_BONUS = {
415
501
  },
416
502
  MELON: {
417
503
  name: 'Cropier Crops',
504
+ piecePotential: {
505
+ [reforges_1.Stat.FarmingFortune]: 10,
506
+ },
418
507
  stats: {
419
508
  2: {
420
509
  [reforges_1.Stat.FarmingFortune]: 10,
@@ -430,6 +519,9 @@ exports.ARMOR_SET_BONUS = {
430
519
  },
431
520
  CROPIE: {
432
521
  name: 'Squashbuckle',
522
+ piecePotential: {
523
+ [reforges_1.Stat.FarmingFortune]: 15,
524
+ },
433
525
  stats: {
434
526
  2: {
435
527
  [reforges_1.Stat.FarmingFortune]: 15,
@@ -445,6 +537,9 @@ exports.ARMOR_SET_BONUS = {
445
537
  },
446
538
  SQUASH: {
447
539
  name: 'Mento Fermento',
540
+ piecePotential: {
541
+ [reforges_1.Stat.FarmingFortune]: 20,
542
+ },
448
543
  stats: {
449
544
  2: {
450
545
  [reforges_1.Stat.FarmingFortune]: 20,
@@ -460,6 +555,9 @@ exports.ARMOR_SET_BONUS = {
460
555
  },
461
556
  FERMENTO: {
462
557
  name: 'Feast',
558
+ piecePotential: {
559
+ [reforges_1.Stat.FarmingFortune]: 25,
560
+ },
463
561
  stats: {
464
562
  2: {
465
563
  [reforges_1.Stat.FarmingFortune]: 25,