farming-weight 0.2.10 → 0.2.12

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 (44) hide show
  1. package/dist/classes/farmingarmor.js +15 -0
  2. package/dist/classes/farmingarmor.js.map +1 -1
  3. package/dist/classes/farmingtool.d.ts +1 -0
  4. package/dist/classes/farmingtool.js +3 -0
  5. package/dist/classes/farmingtool.js.map +1 -1
  6. package/dist/classes/player.d.ts +3 -6
  7. package/dist/classes/player.js +38 -6
  8. package/dist/classes/player.js.map +1 -1
  9. package/dist/constants/enchants.d.ts +1 -0
  10. package/dist/constants/enchants.js +37 -2
  11. package/dist/constants/enchants.js.map +1 -1
  12. package/dist/constants/personalbests.d.ts +4 -0
  13. package/dist/constants/personalbests.js +25 -0
  14. package/dist/constants/personalbests.js.map +1 -0
  15. package/dist/constants/pests.d.ts +46 -0
  16. package/dist/constants/pests.js +95 -0
  17. package/dist/constants/pests.js.map +1 -0
  18. package/dist/constants/reforges.d.ts +2 -1
  19. package/dist/constants/reforges.js +2 -0
  20. package/dist/constants/reforges.js.map +1 -1
  21. package/dist/constants/specific.d.ts +2 -0
  22. package/dist/constants/specific.js +6 -0
  23. package/dist/constants/specific.js.map +1 -0
  24. package/dist/crops/melon.d.ts +1 -1
  25. package/dist/crops/melon.js +3 -3
  26. package/dist/crops/melon.js.map +1 -1
  27. package/dist/crops/pumpkin.d.ts +1 -1
  28. package/dist/crops/pumpkin.js +3 -3
  29. package/dist/crops/pumpkin.js.map +1 -1
  30. package/dist/index.d.ts +7 -1
  31. package/dist/index.js +7 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/ratecalc.js +4 -4
  34. package/dist/ratecalc.js.map +1 -1
  35. package/dist/util/names.d.ts +3 -0
  36. package/dist/util/names.js +75 -5
  37. package/dist/util/names.js.map +1 -1
  38. package/dist/util/ratecalc.d.ts +39 -0
  39. package/dist/util/ratecalc.js +172 -0
  40. package/dist/util/ratecalc.js.map +1 -0
  41. package/dist/util/skyblocktime.d.ts +18 -0
  42. package/dist/util/skyblocktime.js +70 -0
  43. package/dist/util/skyblocktime.js.map +1 -0
  44. package/package.json +42 -42
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- export * from './ratecalc.js';
2
1
  export * from './classes/farmingarmor.js';
3
2
  export * from './classes/farmingtool.js';
4
3
  export * from './classes/item.js';
@@ -11,6 +10,13 @@ export * from './constants/skills.js';
11
10
  export * from './constants/specialcrops.js';
12
11
  export * from './constants/tools.js';
13
12
  export * from './constants/weight.js';
13
+ export * from './constants/pests.js';
14
+ export * from './constants/personalbests.js';
14
15
  export * from './util/itemstats.js';
15
16
  export * from './util/jacob.js';
16
17
  export * from './util/names.js';
18
+ export * from './util/skyblocktime.js';
19
+ export * from './util/ratecalc.js';
20
+ export * from './crops/special.js';
21
+ export * from './crops/pumpkin.js';
22
+ export * from './crops/melon.js';
package/dist/index.js CHANGED
@@ -14,7 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./ratecalc.js"), exports);
18
17
  __exportStar(require("./classes/farmingarmor.js"), exports);
19
18
  __exportStar(require("./classes/farmingtool.js"), exports);
20
19
  __exportStar(require("./classes/item.js"), exports);
@@ -27,7 +26,14 @@ __exportStar(require("./constants/skills.js"), exports);
27
26
  __exportStar(require("./constants/specialcrops.js"), exports);
28
27
  __exportStar(require("./constants/tools.js"), exports);
29
28
  __exportStar(require("./constants/weight.js"), exports);
29
+ __exportStar(require("./constants/pests.js"), exports);
30
+ __exportStar(require("./constants/personalbests.js"), exports);
30
31
  __exportStar(require("./util/itemstats.js"), exports);
31
32
  __exportStar(require("./util/jacob.js"), exports);
32
33
  __exportStar(require("./util/names.js"), exports);
34
+ __exportStar(require("./util/skyblocktime.js"), exports);
35
+ __exportStar(require("./util/ratecalc.js"), exports);
36
+ __exportStar(require("./crops/special.js"), exports);
37
+ __exportStar(require("./crops/pumpkin.js"), exports);
38
+ __exportStar(require("./crops/melon.js"), exports);
33
39
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAE9B,4DAA0C;AAC1C,2DAAyC;AACzC,oDAAkC;AAClC,sDAAoC;AACpC,0DAAwC;AAExC,uDAAqC;AACrC,uDAAqC;AACrC,0DAAwC;AACxC,wDAAsC;AACtC,8DAA4C;AAC5C,uDAAqC;AACrC,wDAAsC;AAEtC,sDAAoC;AACpC,kDAAgC;AAChC,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,2DAAyC;AACzC,oDAAkC;AAClC,sDAAoC;AACpC,0DAAwC;AAExC,uDAAqC;AACrC,uDAAqC;AACrC,0DAAwC;AACxC,wDAAsC;AACtC,8DAA4C;AAC5C,uDAAqC;AACrC,wDAAsC;AACtC,uDAAqC;AACrC,+DAA6C;AAE7C,sDAAoC;AACpC,kDAAgC;AAChC,kDAAgC;AAChC,yDAAuC;AACvC,qDAAmC;AAEnC,qDAAmC;AACnC,qDAAmC;AACnC,mDAAiC"}
package/dist/ratecalc.js CHANGED
@@ -70,9 +70,9 @@ function CalculateExpectedDrops(options) {
70
70
  case crops_1.Crop.Seeds:
71
71
  return Math.round(baseDrops - blocksBroken); // Replenish takes away one drop per block broken
72
72
  case crops_1.Crop.Pumpkin:
73
- return Math.round(baseDrops + (0, pumpkin_1.PumpkinPerkBonus)(blocksBroken));
73
+ return Math.round(baseDrops + (0, pumpkin_1.CalculatePumpkinPerkBonus)(blocksBroken));
74
74
  case crops_1.Crop.Melon:
75
- return Math.round(baseDrops + (0, melon_1.MelonPerkBonus)(blocksBroken));
75
+ return Math.round(baseDrops + (0, melon_1.CalculateMelonPerkBonus)(blocksBroken));
76
76
  default:
77
77
  return 0;
78
78
  }
@@ -112,13 +112,13 @@ function CalculateDetailedDrops(options) {
112
112
  let extraDrops = 0;
113
113
  switch (crop) {
114
114
  case crops_1.Crop.Pumpkin:
115
- extraDrops = Math.round((0, pumpkin_1.PumpkinPerkBonus)(blocksBroken));
115
+ extraDrops = Math.round((0, pumpkin_1.CalculatePumpkinPerkBonus)(blocksBroken));
116
116
  result.coinSources['Dicer RNG'] = Math.round(extraDrops * npc);
117
117
  result.collection = Math.round(baseDrops + extraDrops);
118
118
  result.coinSources['Collection'] = Math.round(baseDrops * npc);
119
119
  break;
120
120
  case crops_1.Crop.Melon:
121
- extraDrops = Math.round((0, melon_1.MelonPerkBonus)(blocksBroken));
121
+ extraDrops = Math.round((0, melon_1.CalculateMelonPerkBonus)(blocksBroken));
122
122
  result.coinSources['Dicer RNG'] = Math.round(extraDrops * npc);
123
123
  result.collection = Math.round(baseDrops + extraDrops);
124
124
  result.coinSources['Collection'] = Math.round(baseDrops * npc);
@@ -1 +1 @@
1
- {"version":3,"file":"ratecalc.js","sourceRoot":"","sources":["../src/ratecalc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ratecalc.js","sourceRoot":"","sources":["../src/ratecalc.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,5 @@
1
1
  import { Crop } from '../constants/crops';
2
2
  export declare function CropDisplayName(crop: Crop): string;
3
+ export declare function CropFromName(name: string): Crop | undefined;
4
+ export declare function CropFromItemId(itemId: string): Crop | undefined;
5
+ export declare function ItemIdFromCrop(crop: Crop): string;
@@ -1,7 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CropDisplayName = void 0;
3
+ exports.ItemIdFromCrop = exports.CropFromItemId = exports.CropFromName = exports.CropDisplayName = void 0;
4
4
  const crops_1 = require("../constants/crops");
5
+ function CropDisplayName(crop) {
6
+ return CROP_DISPLAY_NAMES[crop] ?? 'Unknown Crop';
7
+ }
8
+ exports.CropDisplayName = CropDisplayName;
9
+ function CropFromName(name) {
10
+ const fromDisplay = DISPLAY_NAMES_TO_CROP[name];
11
+ if (fromDisplay)
12
+ return fromDisplay;
13
+ const fromShort = SHORT_NAMES_TO_CROP[name];
14
+ if (fromShort)
15
+ return fromShort;
16
+ return CropFromItemId(name);
17
+ }
18
+ exports.CropFromName = CropFromName;
19
+ function CropFromItemId(itemId) {
20
+ return CROP_ITEM_IDS[itemId];
21
+ }
22
+ exports.CropFromItemId = CropFromItemId;
23
+ function ItemIdFromCrop(crop) {
24
+ return ITEM_IDS_TO_CROP[crop];
25
+ }
26
+ exports.ItemIdFromCrop = ItemIdFromCrop;
5
27
  const CROP_DISPLAY_NAMES = {
6
28
  [crops_1.Crop.Cactus]: 'Cactus',
7
29
  [crops_1.Crop.Carrot]: 'Carrot',
@@ -15,8 +37,56 @@ const CROP_DISPLAY_NAMES = {
15
37
  [crops_1.Crop.Wheat]: 'Wheat',
16
38
  [crops_1.Crop.Seeds]: 'Seeds',
17
39
  };
18
- function CropDisplayName(crop) {
19
- return CROP_DISPLAY_NAMES[crop] ?? 'Unknown Crop';
20
- }
21
- exports.CropDisplayName = CropDisplayName;
40
+ const DISPLAY_NAMES_TO_CROP = {
41
+ Cactus: crops_1.Crop.Cactus,
42
+ Carrot: crops_1.Crop.Carrot,
43
+ 'Cocoa Beans': crops_1.Crop.CocoaBeans,
44
+ Melon: crops_1.Crop.Melon,
45
+ Mushroom: crops_1.Crop.Mushroom,
46
+ 'Nether Wart': crops_1.Crop.NetherWart,
47
+ Potato: crops_1.Crop.Potato,
48
+ Pumpkin: crops_1.Crop.Pumpkin,
49
+ 'Sugar Cane': crops_1.Crop.SugarCane,
50
+ Wheat: crops_1.Crop.Wheat,
51
+ Seeds: crops_1.Crop.Seeds,
52
+ };
53
+ const SHORT_NAMES_TO_CROP = {
54
+ cactus: crops_1.Crop.Cactus,
55
+ carrot: crops_1.Crop.Carrot,
56
+ cocoa: crops_1.Crop.CocoaBeans,
57
+ melon: crops_1.Crop.Melon,
58
+ mushroom: crops_1.Crop.Mushroom,
59
+ wart: crops_1.Crop.NetherWart,
60
+ potato: crops_1.Crop.Potato,
61
+ pumpkin: crops_1.Crop.Pumpkin,
62
+ cane: crops_1.Crop.SugarCane,
63
+ wheat: crops_1.Crop.Wheat,
64
+ seeds: crops_1.Crop.Seeds,
65
+ };
66
+ const CROP_ITEM_IDS = {
67
+ CACTUS: crops_1.Crop.Cactus,
68
+ CARROT_ITEM: crops_1.Crop.Carrot,
69
+ 'INK_SACK:3': crops_1.Crop.CocoaBeans,
70
+ MELON: crops_1.Crop.Melon,
71
+ BROWN_MUSHROOM: crops_1.Crop.Mushroom,
72
+ NETHER_STALK: crops_1.Crop.NetherWart,
73
+ POTATO_ITEM: crops_1.Crop.Potato,
74
+ PUMPKIN: crops_1.Crop.Pumpkin,
75
+ SUGAR_CANE: crops_1.Crop.SugarCane,
76
+ WHEAT: crops_1.Crop.Wheat,
77
+ SEEDS: crops_1.Crop.Seeds,
78
+ };
79
+ const ITEM_IDS_TO_CROP = {
80
+ [crops_1.Crop.Cactus]: 'CACTUS',
81
+ [crops_1.Crop.Carrot]: 'CARROT_ITEM',
82
+ [crops_1.Crop.CocoaBeans]: 'INK_SACK:3',
83
+ [crops_1.Crop.Melon]: 'MELON',
84
+ [crops_1.Crop.Mushroom]: 'BROWN_MUSHROOM',
85
+ [crops_1.Crop.NetherWart]: 'NETHER_STALK',
86
+ [crops_1.Crop.Potato]: 'POTATO_ITEM',
87
+ [crops_1.Crop.Pumpkin]: 'PUMPKIN',
88
+ [crops_1.Crop.SugarCane]: 'SUGAR_CANE',
89
+ [crops_1.Crop.Wheat]: 'WHEAT',
90
+ [crops_1.Crop.Seeds]: 'SEEDS',
91
+ };
22
92
  //# sourceMappingURL=names.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"names.js","sourceRoot":"","sources":["../../src/util/names.ts"],"names":[],"mappings":";;;AAAA,8CAA0C;AAE1C,MAAM,kBAAkB,GAAyB;IAChD,CAAC,YAAI,CAAC,MAAM,CAAC,EAAE,QAAQ;IACvB,CAAC,YAAI,CAAC,MAAM,CAAC,EAAE,QAAQ;IACvB,CAAC,YAAI,CAAC,UAAU,CAAC,EAAE,aAAa;IAChC,CAAC,YAAI,CAAC,KAAK,CAAC,EAAE,OAAO;IACrB,CAAC,YAAI,CAAC,QAAQ,CAAC,EAAE,UAAU;IAC3B,CAAC,YAAI,CAAC,UAAU,CAAC,EAAE,aAAa;IAChC,CAAC,YAAI,CAAC,MAAM,CAAC,EAAE,QAAQ;IACvB,CAAC,YAAI,CAAC,OAAO,CAAC,EAAE,SAAS;IACzB,CAAC,YAAI,CAAC,SAAS,CAAC,EAAE,YAAY;IAC9B,CAAC,YAAI,CAAC,KAAK,CAAC,EAAE,OAAO;IACrB,CAAC,YAAI,CAAC,KAAK,CAAC,EAAE,OAAO;CACrB,CAAC;AAEF,SAAgB,eAAe,CAAC,IAAU;IACzC,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC;AACnD,CAAC;AAFD,0CAEC"}
1
+ {"version":3,"file":"names.js","sourceRoot":"","sources":["../../src/util/names.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { Crop, CropInfo } from '../constants/crops';
2
+ interface CalculateDropsOptions {
3
+ farmingFortune?: number;
4
+ blocksBroken: number;
5
+ }
6
+ export declare function CalculateAverageDrops(options: CalculateDropsOptions): Record<Crop, number>;
7
+ interface CalculateDetailedDropsOptions extends CalculateDropsOptions {
8
+ bountiful: boolean;
9
+ mooshroom: boolean;
10
+ }
11
+ interface DetailedDrops {
12
+ collection: number;
13
+ npcCoins: number;
14
+ fortune: number;
15
+ coinSources: Record<string, number>;
16
+ otherCollection: Record<string, number>;
17
+ }
18
+ export declare function CalculateDetailedAverageDrops(options: CalculateDetailedDropsOptions): Record<Crop, DetailedDrops>;
19
+ interface CalculateExpectedDropsOptions extends CalculateDropsOptions {
20
+ blocksBroken: number;
21
+ crop: Crop;
22
+ }
23
+ interface CalculateCropDetailedDropsOptions extends CalculateDetailedDropsOptions {
24
+ blocksBroken: number;
25
+ crop: Crop;
26
+ }
27
+ export declare function CalculateExpectedDrops(options: CalculateExpectedDropsOptions): number;
28
+ export declare function CalculateDetailedDrops(options: CalculateCropDetailedDropsOptions): DetailedDrops;
29
+ export interface FortuneRequiredCalculatorOptions {
30
+ blocksBroken: number;
31
+ crop: Crop;
32
+ collection: number;
33
+ useDicers?: boolean;
34
+ useMooshroom?: boolean;
35
+ }
36
+ export declare function GetFortuneRequiredForCollection(options: FortuneRequiredCalculatorOptions): number;
37
+ export declare function GetNPCProfit(crop: Crop, amount: number): number;
38
+ export declare function GetCropInfo(crop: Crop): CropInfo;
39
+ export {};
@@ -0,0 +1,172 @@
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");
8
+ 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,
20
+ ];
21
+ function CalculateAverageDrops(options) {
22
+ const result = {};
23
+ for (const crop of crops) {
24
+ result[crop] = CalculateExpectedDrops({
25
+ crop: crop,
26
+ ...options,
27
+ });
28
+ }
29
+ return result;
30
+ }
31
+ exports.CalculateAverageDrops = CalculateAverageDrops;
32
+ function CalculateDetailedAverageDrops(options) {
33
+ const result = {};
34
+ for (const crop of crops) {
35
+ result[crop] = CalculateDetailedDrops({
36
+ crop: crop,
37
+ ...options,
38
+ });
39
+ }
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;
44
+ if (options.bountiful) {
45
+ wheat.coinSources['Bountiful (Seeds)'] = seeds.coinSources['Bountiful'] ?? 0;
46
+ }
47
+ wheat.npcCoins = Object.values(wheat.coinSources).reduce((a, b) => a + b, 0);
48
+ return result;
49
+ }
50
+ exports.CalculateDetailedAverageDrops = CalculateDetailedAverageDrops;
51
+ function CalculateExpectedDrops(options) {
52
+ const { farmingFortune, blocksBroken, crop } = options;
53
+ const fortune = farmingFortune ?? crops_1.MAX_CROP_FORTUNE[crop] ?? 0;
54
+ if (fortune <= 0 || blocksBroken < 0)
55
+ return 0;
56
+ const { drops } = GetCropInfo(crop);
57
+ if (!drops)
58
+ return 0;
59
+ const baseDrops = blocksBroken * drops * (fortune * 0.01);
60
+ 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:
65
+ 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:
71
+ 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));
76
+ default:
77
+ return 0;
78
+ }
79
+ }
80
+ exports.CalculateExpectedDrops = CalculateExpectedDrops;
81
+ function CalculateDetailedDrops(options) {
82
+ const result = {
83
+ collection: 0,
84
+ npcCoins: 0,
85
+ fortune: 0,
86
+ coinSources: {},
87
+ otherCollection: {},
88
+ };
89
+ const { farmingFortune, blocksBroken, crop, bountiful } = options;
90
+ let fortune = farmingFortune ?? crops_1.MAX_CROP_FORTUNE[crop] ?? 0;
91
+ if (fortune <= 0 || blocksBroken < 0)
92
+ return result;
93
+ if (!bountiful && !farmingFortune) {
94
+ fortune += 5;
95
+ }
96
+ result.fortune = fortune;
97
+ const { drops, npc, breaks = 1, replenish = false } = GetCropInfo(crop);
98
+ if (!drops)
99
+ return result;
100
+ const baseDrops = blocksBroken * drops * (fortune * 0.01);
101
+ // Coin sources
102
+ if (bountiful) {
103
+ result.coinSources['Bountiful'] = Math.round(baseDrops * 0.2);
104
+ }
105
+ 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);
108
+ }
109
+ const specialCrops = (0, special_1.CalculateAverageSpecialCrops)(blocksBroken, crop, 4);
110
+ result.otherCollection[specialCrops.type] = Math.round(specialCrops.amount);
111
+ result.coinSources[specialCrops.type] = Math.round(specialCrops.npc);
112
+ let extraDrops = 0;
113
+ switch (crop) {
114
+ case crops_1.Crop.Pumpkin:
115
+ extraDrops = Math.round((0, pumpkin_1.CalculatePumpkinPerkBonus)(blocksBroken));
116
+ result.coinSources['Dicer RNG'] = Math.round(extraDrops * npc);
117
+ result.collection = Math.round(baseDrops + extraDrops);
118
+ result.coinSources['Collection'] = Math.round(baseDrops * npc);
119
+ break;
120
+ case crops_1.Crop.Melon:
121
+ extraDrops = Math.round((0, melon_1.CalculateMelonPerkBonus)(blocksBroken));
122
+ result.coinSources['Dicer RNG'] = Math.round(extraDrops * npc);
123
+ result.collection = Math.round(baseDrops + extraDrops);
124
+ result.coinSources['Collection'] = Math.round(baseDrops * npc);
125
+ break;
126
+ default:
127
+ if (replenish) {
128
+ // Replenish takes away one drop per block broken
129
+ result.coinSources['Collection'] = Math.round((baseDrops - blocksBroken * breaks) * npc);
130
+ result.collection = Math.round(baseDrops);
131
+ break;
132
+ }
133
+ result.coinSources['Collection'] = Math.round(baseDrops * npc);
134
+ result.collection = Math.round(baseDrops);
135
+ break;
136
+ }
137
+ result.npcCoins = Object.values(result.coinSources).reduce((a, b) => a + b, 0);
138
+ return result;
139
+ }
140
+ exports.CalculateDetailedDrops = CalculateDetailedDrops;
141
+ function GetFortuneRequiredForCollection(options) {
142
+ const { blocksBroken, crop, useDicers, useMooshroom } = options;
143
+ let { collection } = options;
144
+ const { drops } = GetCropInfo(options.crop);
145
+ if (useDicers)
146
+ switch (crop) {
147
+ case crops_1.Crop.Pumpkin:
148
+ collection -= (0, pumpkin_1.CalculatePumpkinPerkBonus)(blocksBroken);
149
+ break;
150
+ case crops_1.Crop.Melon:
151
+ collection -= (0, melon_1.CalculateMelonPerkBonus)(blocksBroken);
152
+ break;
153
+ }
154
+ if (useMooshroom && crop === crops_1.Crop.Mushroom) {
155
+ collection -= blocksBroken; // "* breaks" not needed because it's always 1 for mushroom
156
+ }
157
+ const fortune = (collection * 100) / (drops * blocksBroken) - 100;
158
+ return Math.ceil(fortune);
159
+ }
160
+ exports.GetFortuneRequiredForCollection = GetFortuneRequiredForCollection;
161
+ function GetNPCProfit(crop, amount) {
162
+ const { npc } = GetCropInfo(crop);
163
+ if (!npc)
164
+ return 0;
165
+ return npc * amount;
166
+ }
167
+ exports.GetNPCProfit = GetNPCProfit;
168
+ function GetCropInfo(crop) {
169
+ return crops_1.CROP_INFO[crop] ?? {};
170
+ }
171
+ exports.GetCropInfo = GetCropInfo;
172
+ //# sourceMappingURL=ratecalc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ratecalc.js","sourceRoot":"","sources":["../../src/util/ratecalc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export declare class SkyBlockTime {
2
+ static readonly SkyBlockEpochSeconds = 1560275700;
3
+ static readonly MonthNames: readonly ["Early Spring", "Spring", "Late Spring", "Early Summer", "Summer", "Late Summer", "Early Autumn", "Autumn", "Late Autumn", "Early Winter", "Winter", "Late Winter"];
4
+ readonly year: number;
5
+ readonly month: number;
6
+ readonly day: number;
7
+ readonly unixSeconds: number;
8
+ static get now(): SkyBlockTime;
9
+ constructor(unixMs: number);
10
+ static from(sbYear: number, sbMonth?: number, sbDay?: number): SkyBlockTime;
11
+ static fromZeroIndexed(sbYear: number, sbMonth?: number, sbDay?: number): SkyBlockTime;
12
+ get monthName(): "Early Spring" | "Spring" | "Late Spring" | "Early Summer" | "Summer" | "Late Summer" | "Early Autumn" | "Autumn" | "Late Autumn" | "Early Winter" | "Winter" | "Late Winter" | undefined;
13
+ isSpring(): boolean;
14
+ isSummer(): boolean;
15
+ isAutumn(): boolean;
16
+ isWinter(): boolean;
17
+ toString(): string;
18
+ }
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SkyBlockTime = void 0;
4
+ class SkyBlockTime {
5
+ static SkyBlockEpochSeconds = 1560275700;
6
+ static MonthNames = [
7
+ 'Early Spring',
8
+ 'Spring',
9
+ 'Late Spring',
10
+ 'Early Summer',
11
+ 'Summer',
12
+ 'Late Summer',
13
+ 'Early Autumn',
14
+ 'Autumn',
15
+ 'Late Autumn',
16
+ 'Early Winter',
17
+ 'Winter',
18
+ 'Late Winter',
19
+ ];
20
+ static get now() {
21
+ return new SkyBlockTime(Date.now());
22
+ }
23
+ constructor(unixMs) {
24
+ this.unixSeconds = Math.floor(unixMs / 1000);
25
+ const elapsedSeconds = this.unixSeconds - SkyBlockTime.SkyBlockEpochSeconds;
26
+ const elapsedDays = Math.floor(elapsedSeconds / 1200);
27
+ this.year = Math.floor(elapsedDays / 372) + 1;
28
+ this.month = Math.floor((elapsedDays % 372) / 31) + 1;
29
+ this.day = Math.floor((elapsedDays % 372) % 31) + 1;
30
+ }
31
+ static from(sbYear, sbMonth = 1, sbDay = 1) {
32
+ return this.fromZeroIndexed(sbYear - 1, sbMonth - 1, sbDay - 1);
33
+ }
34
+ static fromZeroIndexed(sbYear, sbMonth = 0, sbDay = 0) {
35
+ const elapsedDays = sbYear * 372 + sbMonth * 31 + sbDay;
36
+ const elapsedSeconds = elapsedDays * 1200;
37
+ return new SkyBlockTime((elapsedSeconds + SkyBlockTime.SkyBlockEpochSeconds) * 1000);
38
+ }
39
+ get monthName() {
40
+ return SkyBlockTime.MonthNames[this.month - 1];
41
+ }
42
+ isSpring() {
43
+ return this.month > 0 && this.month < 4;
44
+ }
45
+ isSummer() {
46
+ return this.month > 3 && this.month < 7;
47
+ }
48
+ isAutumn() {
49
+ return this.month > 6 && this.month < 10;
50
+ }
51
+ isWinter() {
52
+ return this.month > 9 && this.month < 13;
53
+ }
54
+ toString() {
55
+ return `${this.monthName} ${appendOrdinalSuffix(this.day)}, Year ${this.year}`;
56
+ }
57
+ }
58
+ exports.SkyBlockTime = SkyBlockTime;
59
+ function appendOrdinalSuffix(number) {
60
+ const j = number % 10;
61
+ const k = number % 100;
62
+ if (j == 1 && k != 11)
63
+ return `${number}st`;
64
+ if (j == 2 && k != 12)
65
+ return `${number}nd`;
66
+ if (j == 3 && k != 13)
67
+ return `${number}rd`;
68
+ return `${number}th`;
69
+ }
70
+ //# sourceMappingURL=skyblocktime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skyblocktime.js","sourceRoot":"","sources":["../../src/util/skyblocktime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,42 +1,42 @@
1
- {
2
- "name": "farming-weight",
3
- "version": "0.2.10",
4
- "description": "Tools for calculating farming weight and fortune in Hypixel Skyblock",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "scripts": {
8
- "build": "tsc",
9
- "format": "prettier --write \"src/**/*.ts\"",
10
- "lint": "eslint"
11
- },
12
- "keywords": [
13
- "farming",
14
- "weight",
15
- "farming-weight",
16
- "skyblock",
17
- "hypixel",
18
- "hypixel-skyblock",
19
- "fortune"
20
- ],
21
- "repository": {
22
- "type": "git",
23
- "url": "git+https://github.com/EliteFarmers/Tools.git"
24
- },
25
- "files": [ "dist/**/*" ],
26
- "bugs": {
27
- "url": "https://github.com/EliteFarmers/Tools/issues"
28
- },
29
- "publishConfig": {
30
- "registry": "https://registry.npmjs.org/",
31
- "access": "public"
32
- },
33
- "homepage": "https://github.com/EliteFarmers/Tools#readme",
34
- "author": "Kaeso",
35
- "license": "LGPL-3.0-only",
36
- "devDependencies": {
37
- "@typescript-eslint/eslint-plugin": "^6.7.4",
38
- "eslint": "^8.50.0",
39
- "prettier": "^3.0.3",
40
- "typescript": "^5.2.2"
41
- }
42
- }
1
+ {
2
+ "name": "farming-weight",
3
+ "version": "0.2.12",
4
+ "description": "Tools for calculating farming weight and fortune in Hypixel Skyblock",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "scripts": {
8
+ "build": "tsc",
9
+ "format": "prettier --write \"src/**/*.ts\"",
10
+ "lint": "eslint"
11
+ },
12
+ "keywords": [
13
+ "farming",
14
+ "weight",
15
+ "farming-weight",
16
+ "skyblock",
17
+ "hypixel",
18
+ "hypixel-skyblock",
19
+ "fortune"
20
+ ],
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+https://github.com/EliteFarmers/Tools.git"
24
+ },
25
+ "files": [ "dist/**/*" ],
26
+ "bugs": {
27
+ "url": "https://github.com/EliteFarmers/Tools/issues"
28
+ },
29
+ "publishConfig": {
30
+ "registry": "https://registry.npmjs.org/",
31
+ "access": "public"
32
+ },
33
+ "homepage": "https://github.com/EliteFarmers/Tools#readme",
34
+ "author": "Kaeso",
35
+ "license": "LGPL-3.0-only",
36
+ "devDependencies": {
37
+ "@typescript-eslint/eslint-plugin": "^6.7.4",
38
+ "eslint": "^8.50.0",
39
+ "prettier": "^3.0.3",
40
+ "typescript": "^5.2.2"
41
+ }
42
+ }