farming-weight 0.2.12 → 0.3.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 (89) hide show
  1. package/dist/classes/farmingaccessory.d.ts +15 -0
  2. package/dist/classes/farmingaccessory.js +42 -0
  3. package/dist/classes/farmingaccessory.js.map +1 -0
  4. package/dist/classes/farmingarmor.d.ts +6 -5
  5. package/dist/classes/farmingarmor.js +38 -36
  6. package/dist/classes/farmingarmor.js.map +1 -1
  7. package/dist/classes/farmingpet.d.ts +18 -3
  8. package/dist/classes/farmingpet.js +75 -9
  9. package/dist/classes/farmingpet.js.map +1 -1
  10. package/dist/classes/farmingtool.d.ts +13 -9
  11. package/dist/classes/farmingtool.js +51 -35
  12. package/dist/classes/farmingtool.js.map +1 -1
  13. package/dist/classes/item.d.ts +1 -1
  14. package/dist/classes/item.js +1 -2
  15. package/dist/classes/lotusgear.d.ts +5 -5
  16. package/dist/classes/lotusgear.js +19 -21
  17. package/dist/classes/lotusgear.js.map +1 -1
  18. package/dist/classes/player.d.ts +33 -9
  19. package/dist/classes/player.js +140 -28
  20. package/dist/classes/player.js.map +1 -1
  21. package/dist/classes/weightcalc.d.ts +1 -1
  22. package/dist/classes/weightcalc.js +27 -31
  23. package/dist/classes/weightcalc.js.map +1 -1
  24. package/dist/constants/accessories.d.ts +14 -0
  25. package/dist/constants/accessories.js +36 -0
  26. package/dist/constants/accessories.js.map +1 -0
  27. package/dist/constants/armor.js +125 -128
  28. package/dist/constants/armor.js.map +1 -1
  29. package/dist/constants/crops.d.ts +2 -0
  30. package/dist/constants/crops.js +31 -18
  31. package/dist/constants/crops.js.map +1 -1
  32. package/dist/constants/enchants.js +67 -70
  33. package/dist/constants/enchants.js.map +1 -1
  34. package/dist/constants/lotus.js +26 -29
  35. package/dist/constants/lotus.js.map +1 -1
  36. package/dist/constants/personalbests.d.ts +1 -1
  37. package/dist/constants/personalbests.js +17 -21
  38. package/dist/constants/personalbests.js.map +1 -1
  39. package/dist/constants/pests.d.ts +2 -2
  40. package/dist/constants/pests.js +10 -15
  41. package/dist/constants/pests.js.map +1 -1
  42. package/dist/constants/pets.d.ts +21 -3
  43. package/dist/constants/pets.js +37 -23
  44. package/dist/constants/pets.js.map +1 -1
  45. package/dist/constants/reforges.js +8 -11
  46. package/dist/constants/reforges.js.map +1 -1
  47. package/dist/constants/skills.js +2 -5
  48. package/dist/constants/skills.js.map +1 -1
  49. package/dist/constants/specialcrops.js +16 -19
  50. package/dist/constants/specialcrops.js.map +1 -1
  51. package/dist/constants/specific.d.ts +3 -0
  52. package/dist/constants/specific.js +5 -5
  53. package/dist/constants/specific.js.map +1 -1
  54. package/dist/constants/tools.d.ts +1 -0
  55. package/dist/constants/tools.js +122 -113
  56. package/dist/constants/tools.js.map +1 -1
  57. package/dist/constants/weight.js +15 -18
  58. package/dist/constants/weight.js.map +1 -1
  59. package/dist/crops/melon.d.ts +1 -1
  60. package/dist/crops/melon.js +3 -7
  61. package/dist/crops/melon.js.map +1 -1
  62. package/dist/crops/pumpkin.d.ts +1 -1
  63. package/dist/crops/pumpkin.js +3 -7
  64. package/dist/crops/pumpkin.js.map +1 -1
  65. package/dist/crops/special.d.ts +1 -1
  66. package/dist/crops/special.js +6 -10
  67. package/dist/crops/special.js.map +1 -1
  68. package/dist/index.d.ts +3 -0
  69. package/dist/index.js +25 -38
  70. package/dist/index.js.map +1 -1
  71. package/dist/util/itemstats.d.ts +3 -3
  72. package/dist/util/itemstats.js +48 -53
  73. package/dist/util/itemstats.js.map +1 -1
  74. package/dist/util/jacob.d.ts +2 -2
  75. package/dist/util/jacob.js +3 -8
  76. package/dist/util/jacob.js.map +1 -1
  77. package/dist/util/lore.d.ts +1 -1
  78. package/dist/util/lore.js +1 -5
  79. package/dist/util/lore.js.map +1 -1
  80. package/dist/util/names.d.ts +5 -4
  81. package/dist/util/names.js +102 -78
  82. package/dist/util/names.js.map +1 -1
  83. package/dist/util/ratecalc.d.ts +7 -7
  84. package/dist/util/ratecalc.js +87 -75
  85. package/dist/util/ratecalc.js.map +1 -1
  86. package/dist/util/skyblocktime.d.ts +1 -0
  87. package/dist/util/skyblocktime.js +8 -5
  88. package/dist/util/skyblocktime.js.map +1 -1
  89. package/package.json +1 -1
@@ -1,84 +1,90 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GetCropInfo = exports.GetNPCProfit = exports.GetFortuneRequiredForCollection = exports.CalculateDetailedDrops = exports.CalculateExpectedDrops = exports.CalculateDetailedAverageDrops = exports.CalculateAverageDrops = void 0;
4
- const crops_1 = require("../constants/crops");
5
- const melon_1 = require("../crops/melon");
6
- const pumpkin_1 = require("../crops/pumpkin");
7
- const special_1 = require("../crops/special");
1
+ import { CROP_INFO, Crop, MAX_CROP_FORTUNE } from '../constants/crops';
2
+ import { REFORGES, Rarity, Stat } from '../constants/reforges';
3
+ import { BEST_FARMING_TOOLS } from '../constants/tools';
4
+ import { calculateMelonPerkBonus } from '../crops/melon';
5
+ import { calculatePumpkinPerkBonus } from '../crops/pumpkin';
6
+ import { calculateAverageSpecialCrops } from '../crops/special';
8
7
  const crops = [
9
- crops_1.Crop.Cactus,
10
- crops_1.Crop.Carrot,
11
- crops_1.Crop.CocoaBeans,
12
- crops_1.Crop.Melon,
13
- crops_1.Crop.Mushroom,
14
- crops_1.Crop.NetherWart,
15
- crops_1.Crop.Potato,
16
- crops_1.Crop.Pumpkin,
17
- crops_1.Crop.SugarCane,
18
- crops_1.Crop.Wheat,
19
- crops_1.Crop.Seeds,
8
+ Crop.Cactus,
9
+ Crop.Carrot,
10
+ Crop.CocoaBeans,
11
+ Crop.Melon,
12
+ Crop.Mushroom,
13
+ Crop.NetherWart,
14
+ Crop.Potato,
15
+ Crop.Pumpkin,
16
+ Crop.SugarCane,
17
+ Crop.Wheat,
18
+ Crop.Seeds,
20
19
  ];
21
- function CalculateAverageDrops(options) {
20
+ export function calculateAverageDrops(options) {
22
21
  const result = {};
23
22
  for (const crop of crops) {
24
- result[crop] = CalculateExpectedDrops({
23
+ result[crop] = calculateExpectedDrops({
25
24
  crop: crop,
26
25
  ...options,
27
26
  });
28
27
  }
29
28
  return result;
30
29
  }
31
- exports.CalculateAverageDrops = CalculateAverageDrops;
32
- function CalculateDetailedAverageDrops(options) {
30
+ export function calculateDetailedAverageDrops(options) {
33
31
  const result = {};
34
32
  for (const crop of crops) {
35
- result[crop] = CalculateDetailedDrops({
33
+ result[crop] = calculateDetailedDrops({
36
34
  crop: crop,
37
35
  ...options,
38
36
  });
39
37
  }
40
- const wheat = result[crops_1.Crop.Wheat];
41
- const seeds = result[crops_1.Crop.Seeds];
42
- wheat.otherCollection['Seeds'] = seeds.collection;
43
- wheat.coinSources['Seeds'] = seeds.collection * crops_1.CROP_INFO[crops_1.Crop.Seeds].npc;
38
+ const wheat = result[Crop.Wheat];
39
+ const seeds = result[Crop.Seeds];
40
+ // Combine seeds into wheat
41
+ const seedCollection = seeds.collection - options.blocksBroken;
42
+ wheat.otherCollection['Seeds'] = seedCollection;
43
+ wheat.coinSources['Seeds'] = seedCollection * CROP_INFO[Crop.Seeds].npc;
44
44
  if (options.bountiful) {
45
45
  wheat.coinSources['Bountiful (Seeds)'] = seeds.coinSources['Bountiful'] ?? 0;
46
46
  }
47
47
  wheat.npcCoins = Object.values(wheat.coinSources).reduce((a, b) => a + b, 0);
48
+ // Count mooshroom mushrooms as normal mushroom collection
49
+ if (options.mooshroom) {
50
+ const mushroom = result[Crop.Mushroom];
51
+ const mooshroom = mushroom.otherCollection['Mushroom'] ?? 0;
52
+ mushroom.collection += mooshroom;
53
+ mushroom.otherCollection['Mooshroom'] = mooshroom;
54
+ delete mushroom.otherCollection['Mushroom'];
55
+ }
48
56
  return result;
49
57
  }
50
- exports.CalculateDetailedAverageDrops = CalculateDetailedAverageDrops;
51
- function CalculateExpectedDrops(options) {
58
+ export function calculateExpectedDrops(options) {
52
59
  const { farmingFortune, blocksBroken, crop } = options;
53
- const fortune = farmingFortune ?? crops_1.MAX_CROP_FORTUNE[crop] ?? 0;
60
+ const fortune = farmingFortune ?? MAX_CROP_FORTUNE[crop] ?? 0;
54
61
  if (fortune <= 0 || blocksBroken < 0)
55
62
  return 0;
56
- const { drops } = GetCropInfo(crop);
63
+ const { drops } = getCropInfo(crop);
57
64
  if (!drops)
58
65
  return 0;
59
- const baseDrops = blocksBroken * drops * (fortune * 0.01);
66
+ const baseDrops = blocksBroken * drops * ((fortune + 100) * 0.01);
60
67
  switch (crop) {
61
- case crops_1.Crop.Cactus:
62
- case crops_1.Crop.Wheat:
63
- case crops_1.Crop.Mushroom:
64
- case crops_1.Crop.SugarCane:
68
+ case Crop.Cactus:
69
+ case Crop.Wheat:
70
+ case Crop.Mushroom:
71
+ case Crop.SugarCane:
65
72
  return Math.round(baseDrops);
66
- case crops_1.Crop.Carrot:
67
- case crops_1.Crop.CocoaBeans:
68
- case crops_1.Crop.NetherWart:
69
- case crops_1.Crop.Potato:
70
- case crops_1.Crop.Seeds:
73
+ case Crop.Carrot:
74
+ case Crop.CocoaBeans:
75
+ case Crop.NetherWart:
76
+ case Crop.Potato:
77
+ case Crop.Seeds:
71
78
  return Math.round(baseDrops - blocksBroken); // Replenish takes away one drop per block broken
72
- case crops_1.Crop.Pumpkin:
73
- return Math.round(baseDrops + (0, pumpkin_1.CalculatePumpkinPerkBonus)(blocksBroken));
74
- case crops_1.Crop.Melon:
75
- return Math.round(baseDrops + (0, melon_1.CalculateMelonPerkBonus)(blocksBroken));
79
+ case Crop.Pumpkin:
80
+ return Math.round(baseDrops + calculatePumpkinPerkBonus(blocksBroken));
81
+ case Crop.Melon:
82
+ return Math.round(baseDrops + calculateMelonPerkBonus(blocksBroken));
76
83
  default:
77
84
  return 0;
78
85
  }
79
86
  }
80
- exports.CalculateExpectedDrops = CalculateExpectedDrops;
81
- function CalculateDetailedDrops(options) {
87
+ export function calculateDetailedDrops(options) {
82
88
  const result = {
83
89
  collection: 0,
84
90
  npcCoins: 0,
@@ -87,46 +93,56 @@ function CalculateDetailedDrops(options) {
87
93
  otherCollection: {},
88
94
  };
89
95
  const { farmingFortune, blocksBroken, crop, bountiful } = options;
90
- let fortune = farmingFortune ?? crops_1.MAX_CROP_FORTUNE[crop] ?? 0;
96
+ let fortune = farmingFortune ?? MAX_CROP_FORTUNE[crop] ?? 0;
91
97
  if (fortune <= 0 || blocksBroken < 0)
92
98
  return result;
93
99
  if (!bountiful && !farmingFortune) {
94
- fortune += 5;
100
+ // Add the difference in farming fortune if the user has blessed instead of bountiful
101
+ const maxRarity = BEST_FARMING_TOOLS[crop]?.maxRarity ?? Rarity.Mythic;
102
+ const bountifulFortune = REFORGES.bountiful?.tiers[maxRarity]?.stats?.[Stat.FarmingFortune] ?? 0;
103
+ const blessedFortune = REFORGES.blessed?.tiers[maxRarity]?.stats?.[Stat.FarmingFortune] ?? 0;
104
+ fortune += blessedFortune - bountifulFortune;
95
105
  }
96
106
  result.fortune = fortune;
97
- const { drops, npc, breaks = 1, replenish = false } = GetCropInfo(crop);
107
+ const { drops, npc, breaks = 1, replenish = false } = getCropInfo(crop);
98
108
  if (!drops)
99
109
  return result;
100
- const baseDrops = blocksBroken * drops * (fortune * 0.01);
110
+ const baseDrops = blocksBroken * drops * ((fortune + 100) * 0.01);
111
+ result.otherCollection['Normal'] = Math.round(baseDrops);
101
112
  // Coin sources
102
113
  if (bountiful) {
103
114
  result.coinSources['Bountiful'] = Math.round(baseDrops * 0.2);
104
115
  }
105
116
  if (options.mooshroom) {
106
- result.coinSources['Mooshroom'] = Math.round(blocksBroken * breaks * crops_1.CROP_INFO[crops_1.Crop.Mushroom].npc);
107
- result.otherCollection['Mushroom'] = Math.round(blocksBroken * breaks);
117
+ const mushroomDrops = Math.round(blocksBroken * breaks);
118
+ result.coinSources['Mooshroom'] = mushroomDrops * CROP_INFO[Crop.Mushroom].npc;
119
+ result.otherCollection['Mushroom'] = mushroomDrops;
108
120
  }
109
- const specialCrops = (0, special_1.CalculateAverageSpecialCrops)(blocksBroken, crop, 4);
121
+ const armorPieces = crop === Crop.Cactus ? 3 : 4;
122
+ const specialCrops = calculateAverageSpecialCrops(blocksBroken, crop, armorPieces);
110
123
  result.otherCollection[specialCrops.type] = Math.round(specialCrops.amount);
111
124
  result.coinSources[specialCrops.type] = Math.round(specialCrops.npc);
112
125
  let extraDrops = 0;
113
126
  switch (crop) {
114
- case crops_1.Crop.Pumpkin:
115
- extraDrops = Math.round((0, pumpkin_1.CalculatePumpkinPerkBonus)(blocksBroken));
127
+ case Crop.Pumpkin:
128
+ extraDrops = Math.round(calculatePumpkinPerkBonus(blocksBroken));
116
129
  result.coinSources['Dicer RNG'] = Math.round(extraDrops * npc);
117
- result.collection = Math.round(baseDrops + extraDrops);
118
130
  result.coinSources['Collection'] = Math.round(baseDrops * npc);
131
+ result.otherCollection['RNG Pumpkin'] = Math.round(extraDrops);
132
+ result.collection = Math.round(baseDrops + extraDrops);
119
133
  break;
120
- case crops_1.Crop.Melon:
121
- extraDrops = Math.round((0, melon_1.CalculateMelonPerkBonus)(blocksBroken));
134
+ case Crop.Melon:
135
+ extraDrops = Math.round(calculateMelonPerkBonus(blocksBroken));
122
136
  result.coinSources['Dicer RNG'] = Math.round(extraDrops * npc);
123
- result.collection = Math.round(baseDrops + extraDrops);
124
137
  result.coinSources['Collection'] = Math.round(baseDrops * npc);
138
+ result.otherCollection['RNG Melon'] = Math.round(extraDrops);
139
+ result.collection = Math.round(baseDrops + extraDrops);
125
140
  break;
126
141
  default:
127
142
  if (replenish) {
128
143
  // Replenish takes away one drop per block broken
129
144
  result.coinSources['Collection'] = Math.round((baseDrops - blocksBroken * breaks) * npc);
145
+ result.otherCollection['Replenish'] = -Math.round(blocksBroken * breaks);
130
146
  result.collection = Math.round(baseDrops);
131
147
  break;
132
148
  }
@@ -137,36 +153,32 @@ function CalculateDetailedDrops(options) {
137
153
  result.npcCoins = Object.values(result.coinSources).reduce((a, b) => a + b, 0);
138
154
  return result;
139
155
  }
140
- exports.CalculateDetailedDrops = CalculateDetailedDrops;
141
- function GetFortuneRequiredForCollection(options) {
156
+ export function getFortuneRequiredForCollection(options) {
142
157
  const { blocksBroken, crop, useDicers, useMooshroom } = options;
143
158
  let { collection } = options;
144
- const { drops } = GetCropInfo(options.crop);
159
+ const { drops } = getCropInfo(options.crop);
145
160
  if (useDicers)
146
161
  switch (crop) {
147
- case crops_1.Crop.Pumpkin:
148
- collection -= (0, pumpkin_1.CalculatePumpkinPerkBonus)(blocksBroken);
162
+ case Crop.Pumpkin:
163
+ collection -= calculatePumpkinPerkBonus(blocksBroken);
149
164
  break;
150
- case crops_1.Crop.Melon:
151
- collection -= (0, melon_1.CalculateMelonPerkBonus)(blocksBroken);
165
+ case Crop.Melon:
166
+ collection -= calculateMelonPerkBonus(blocksBroken);
152
167
  break;
153
168
  }
154
- if (useMooshroom && crop === crops_1.Crop.Mushroom) {
169
+ if (useMooshroom && crop === Crop.Mushroom) {
155
170
  collection -= blocksBroken; // "* breaks" not needed because it's always 1 for mushroom
156
171
  }
157
172
  const fortune = (collection * 100) / (drops * blocksBroken) - 100;
158
173
  return Math.ceil(fortune);
159
174
  }
160
- exports.GetFortuneRequiredForCollection = GetFortuneRequiredForCollection;
161
- function GetNPCProfit(crop, amount) {
162
- const { npc } = GetCropInfo(crop);
175
+ export function getNPCProfitFromCrops(crop, amount) {
176
+ const { npc } = getCropInfo(crop);
163
177
  if (!npc)
164
178
  return 0;
165
179
  return npc * amount;
166
180
  }
167
- exports.GetNPCProfit = GetNPCProfit;
168
- function GetCropInfo(crop) {
169
- return crops_1.CROP_INFO[crop] ?? {};
181
+ export function getCropInfo(crop) {
182
+ return CROP_INFO[crop] ?? {};
170
183
  }
171
- exports.GetCropInfo = GetCropInfo;
172
184
  //# sourceMappingURL=ratecalc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ratecalc.js","sourceRoot":"","sources":["../../src/util/ratecalc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ratecalc.js","sourceRoot":"","sources":["../../src/util/ratecalc.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export declare class SkyBlockTime {
9
9
  constructor(unixMs: number);
10
10
  static from(sbYear: number, sbMonth?: number, sbDay?: number): SkyBlockTime;
11
11
  static fromZeroIndexed(sbYear: number, sbMonth?: number, sbDay?: number): SkyBlockTime;
12
+ static fromContestKey(contestKey: string): SkyBlockTime;
12
13
  get monthName(): "Early Spring" | "Spring" | "Late Spring" | "Early Summer" | "Summer" | "Late Summer" | "Early Autumn" | "Autumn" | "Late Autumn" | "Early Winter" | "Winter" | "Late Winter" | undefined;
13
14
  isSpring(): boolean;
14
15
  isSummer(): boolean;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SkyBlockTime = void 0;
4
- class SkyBlockTime {
1
+ export class SkyBlockTime {
5
2
  static SkyBlockEpochSeconds = 1560275700;
6
3
  static MonthNames = [
7
4
  'Early Spring',
@@ -36,6 +33,13 @@ class SkyBlockTime {
36
33
  const elapsedSeconds = elapsedDays * 1200;
37
34
  return new SkyBlockTime((elapsedSeconds + SkyBlockTime.SkyBlockEpochSeconds) * 1000);
38
35
  }
36
+ static fromContestKey(contestKey) {
37
+ // Contest keys are in this format: '160:6_30:CROP_ID'
38
+ // Year counts from zero, month and day start at 1 (for some reason)
39
+ const [year, monthDay] = contestKey.split(':') ?? [];
40
+ const [month, day] = monthDay?.split('_').map(Number) ?? [];
41
+ return this.fromZeroIndexed(+(year ?? 0), (month ?? 0) - 1, (day ?? 0) - 1);
42
+ }
39
43
  get monthName() {
40
44
  return SkyBlockTime.MonthNames[this.month - 1];
41
45
  }
@@ -55,7 +59,6 @@ class SkyBlockTime {
55
59
  return `${this.monthName} ${appendOrdinalSuffix(this.day)}, Year ${this.year}`;
56
60
  }
57
61
  }
58
- exports.SkyBlockTime = SkyBlockTime;
59
62
  function appendOrdinalSuffix(number) {
60
63
  const j = number % 10;
61
64
  const k = number % 100;
@@ -1 +1 @@
1
- {"version":3,"file":"skyblocktime.js","sourceRoot":"","sources":["../../src/util/skyblocktime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skyblocktime.js","sourceRoot":"","sources":["../../src/util/skyblocktime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "farming-weight",
3
- "version": "0.2.12",
3
+ "version": "0.3.0",
4
4
  "description": "Tools for calculating farming weight and fortune in Hypixel Skyblock",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",