farming-weight 0.7.0 → 0.7.2

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 (142) hide show
  1. package/dist/classes/farmingaccessory.d.ts +10 -10
  2. package/dist/classes/farmingaccessory.js +50 -50
  3. package/dist/classes/farmingarmor.d.ts +41 -38
  4. package/dist/classes/farmingarmor.js +202 -207
  5. package/dist/classes/farmingequipment.d.ts +17 -17
  6. package/dist/classes/farmingequipment.js +105 -109
  7. package/dist/classes/farmingpet.d.ts +14 -14
  8. package/dist/classes/farmingpet.js +91 -90
  9. package/dist/classes/farmingtool.d.ts +34 -34
  10. package/dist/classes/farmingtool.js +192 -202
  11. package/dist/classes/item.d.ts +18 -18
  12. package/dist/classes/item.js +11 -11
  13. package/dist/classes/lotusgear.d.ts +17 -17
  14. package/dist/classes/lotusgear.js +103 -107
  15. package/dist/classes/player.d.ts +58 -55
  16. package/dist/classes/player.js +215 -228
  17. package/dist/classes/weightcalc.d.ts +56 -52
  18. package/dist/classes/weightcalc.js +185 -190
  19. package/dist/classes/weightcalc.test.js +102 -102
  20. package/dist/constants/accessories.d.ts +6 -6
  21. package/dist/constants/accessories.js +51 -51
  22. package/dist/constants/armor.d.ts +30 -30
  23. package/dist/constants/armor.js +699 -699
  24. package/dist/constants/enchants.d.ts +1 -1
  25. package/dist/constants/enchants.js +56 -56
  26. package/dist/constants/enchants.js.map +1 -1
  27. package/dist/constants/equipment.d.ts +20 -20
  28. package/dist/constants/equipment.js +116 -116
  29. package/dist/constants/gems.d.ts +2 -2
  30. package/dist/constants/gems.js +8 -8
  31. package/dist/constants/items.d.ts +8 -8
  32. package/dist/constants/items.js +14 -14
  33. package/dist/constants/lotus.d.ts +20 -20
  34. package/dist/constants/lotus.js +106 -106
  35. package/dist/constants/personalbests.d.ts +1 -1
  36. package/dist/constants/personalbests.js +11 -11
  37. package/dist/constants/personalbests.js.map +1 -1
  38. package/dist/constants/pests.d.ts +1 -1
  39. package/dist/constants/pests.js +77 -84
  40. package/dist/constants/pests.js.map +1 -1
  41. package/dist/constants/pets.d.ts +38 -38
  42. package/dist/constants/pets.js +253 -253
  43. package/dist/constants/reforges.d.ts +1 -1
  44. package/dist/constants/reforges.js +1 -1
  45. package/dist/constants/reforges.js.map +1 -1
  46. package/dist/constants/specific.d.ts +1 -1
  47. package/dist/constants/specific.js +6 -6
  48. package/dist/constants/stats.d.ts +1 -1
  49. package/dist/constants/tempfortune.js +14 -14
  50. package/dist/constants/tempfortune.js.map +1 -1
  51. package/dist/constants/tools.d.ts +7 -7
  52. package/dist/constants/tools.js +456 -456
  53. package/dist/constants/upgrades.d.ts +6 -6
  54. package/dist/constants/weight.js +9 -9
  55. package/dist/constants/weight.js.map +1 -1
  56. package/dist/crops/special.js +1 -1
  57. package/dist/crops/special.js.map +1 -1
  58. package/dist/fortune/farmingaccessory.d.ts +1 -1
  59. package/dist/fortune/farmingaccessory.js +1 -1
  60. package/dist/fortune/farmingaccessory.js.map +1 -1
  61. package/dist/fortune/farmingarmor.d.ts +4 -3
  62. package/dist/fortune/farmingarmor.js +28 -17
  63. package/dist/fortune/farmingarmor.js.map +1 -1
  64. package/dist/fortune/farmingequipment.d.ts +3 -3
  65. package/dist/fortune/farmingequipment.js +5 -5
  66. package/dist/fortune/farmingequipment.js.map +1 -1
  67. package/dist/fortune/farmingpet.d.ts +3 -3
  68. package/dist/fortune/farmingpet.js +2 -2
  69. package/dist/fortune/farmingpet.js.map +1 -1
  70. package/dist/fortune/farmingtool.d.ts +2 -2
  71. package/dist/fortune/farmingtool.js +4 -4
  72. package/dist/fortune/farmingtool.js.map +1 -1
  73. package/dist/fortune/upgradable.d.ts +35 -33
  74. package/dist/fortune/upgradable.js +1 -1
  75. package/dist/fortune/upgradeable.d.ts +6 -6
  76. package/dist/fortune/upgradeable.js +3 -3
  77. package/dist/fortune/upgradeable.js.map +1 -1
  78. package/dist/items/accessories.d.ts +1 -1
  79. package/dist/items/accessories.js +3 -3
  80. package/dist/items/accessories.js.map +1 -1
  81. package/dist/items/armor.d.ts +2 -2
  82. package/dist/items/armor.js +2 -2
  83. package/dist/items/armor.js.map +1 -1
  84. package/dist/items/equipment.js +8 -8
  85. package/dist/items/equipment.js.map +1 -1
  86. package/dist/items/pets.d.ts +2 -2
  87. package/dist/items/pets.js +15 -15
  88. package/dist/items/pets.js.map +1 -1
  89. package/dist/items/tools.d.ts +1 -1
  90. package/dist/items/tools.js +15 -15
  91. package/dist/items/tools.js.map +1 -1
  92. package/dist/player/index.js +1 -1
  93. package/dist/player/player.d.ts +1 -1
  94. package/dist/player/player.js +9 -9
  95. package/dist/player/player.js.map +1 -1
  96. package/dist/player/playeroptions.d.ts +10 -10
  97. package/dist/player.d.ts +21 -21
  98. package/dist/player.js +26 -26
  99. package/dist/ratecalc.d.ts +16 -14
  100. package/dist/ratecalc.js +148 -145
  101. package/dist/tool.js +3 -3
  102. package/dist/upgrades/progress.d.ts +2 -2
  103. package/dist/upgrades/progress.js +3 -3
  104. package/dist/upgrades/progress.js.map +1 -1
  105. package/dist/upgrades/sources/accessorysources.d.ts +2 -2
  106. package/dist/upgrades/sources/accessorysources.js +10 -8
  107. package/dist/upgrades/sources/accessorysources.js.map +1 -1
  108. package/dist/upgrades/sources/armorsetsources.d.ts +2 -2
  109. package/dist/upgrades/sources/armorsetsources.js +12 -11
  110. package/dist/upgrades/sources/armorsetsources.js.map +1 -1
  111. package/dist/upgrades/sources/cropsources.d.ts +3 -3
  112. package/dist/upgrades/sources/cropsources.js +22 -22
  113. package/dist/upgrades/sources/cropsources.js.map +1 -1
  114. package/dist/upgrades/sources/gearsources.d.ts +3 -3
  115. package/dist/upgrades/sources/gearsources.js +18 -19
  116. package/dist/upgrades/sources/gearsources.js.map +1 -1
  117. package/dist/upgrades/sources/generalsources.d.ts +2 -2
  118. package/dist/upgrades/sources/generalsources.js +18 -16
  119. package/dist/upgrades/sources/generalsources.js.map +1 -1
  120. package/dist/upgrades/sources/toolsources.d.ts +5 -5
  121. package/dist/upgrades/sources/toolsources.js +24 -23
  122. package/dist/upgrades/sources/toolsources.js.map +1 -1
  123. package/dist/upgrades/upgrades.d.ts +4 -4
  124. package/dist/upgrades/upgrades.js +19 -19
  125. package/dist/upgrades/upgrades.js.map +1 -1
  126. package/dist/util/enchants.d.ts +3 -3
  127. package/dist/util/enchants.js +1 -1
  128. package/dist/util/enchants.js.map +1 -1
  129. package/dist/util/garden.d.ts +2 -2
  130. package/dist/util/garden.js +6 -7
  131. package/dist/util/garden.js.map +1 -1
  132. package/dist/util/gems.d.ts +2 -2
  133. package/dist/util/gems.js +24 -14
  134. package/dist/util/gems.js.map +1 -1
  135. package/dist/util/pests.js +1 -1
  136. package/dist/util/pests.js.map +1 -1
  137. package/dist/util/pests.test.js +27 -25
  138. package/dist/util/ratecalc.js +2 -2
  139. package/dist/util/ratecalc.js.map +1 -1
  140. package/dist/util/skyblocktime.js +1 -1
  141. package/dist/util/skyblocktime.js.map +1 -1
  142. package/package.json +36 -48
@@ -1,111 +1,107 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ 'use strict';
2
+ Object.defineProperty(exports, '__esModule', { value: true });
3
3
  exports.LotusGear = void 0;
4
- const lotus_1 = require("../constants/lotus");
5
- const reforges_1 = require("../constants/reforges");
6
- const itemstats_1 = require("../util/itemstats");
7
- const lore_1 = require("../util/lore");
4
+ const LOTUS_1 = require('../constants/lotus');
5
+ const REFORGES_1 = require('../constants/reforges');
6
+ const ITEMSTATS_1 = require('../util/itemstats');
7
+ const LORE_1 = require('../util/lore');
8
8
  class LotusGear {
9
- item;
10
- info;
11
- get slot() {
12
- return this.info.slot;
13
- }
14
- constructor(item, options) {
15
- this.options = options;
16
- this.item = item;
17
- const info = lotus_1.LOTUS_GEAR_INFO[item.skyblockId];
18
- if (!info) {
19
- throw new Error(`Unknown lotus gear: ${item.name} (${item.skyblockId})`);
20
- }
21
- this.info = info;
22
- if (item.lore) {
23
- this.rarity = (0, itemstats_1.getRarityFromLore)(item.lore);
24
- }
25
- this.reforge = reforges_1.REFORGES[item.attributes?.modifier ?? ''] ?? undefined;
26
- this.reforgeStats = this.reforge?.tiers?.[this.rarity];
27
- this.recombobulated = this.item.attributes?.rarity_upgrades === '1';
28
- this.getFortune();
29
- }
30
- setOptions(options) {
31
- this.options = options;
32
- this.getFortune();
33
- }
34
- getFortune() {
35
- this.fortuneBreakdown = {};
36
- let sum = 0;
37
- // Base fortune
38
- const base = this.info.stats?.[reforges_1.Stat.FarmingFortune] ?? 0;
39
- if (base > 0) {
40
- this.fortuneBreakdown['Base Stats'] = base;
41
- sum += base;
42
- }
43
- // Reforge
44
- const reforge = this.reforgeStats?.stats?.[reforges_1.Stat.FarmingFortune] ?? 0;
45
- if (reforge > 0) {
46
- this.fortuneBreakdown['Reforge'] = reforge;
47
- sum += reforge;
48
- }
49
- // Visitors
50
- const visitors = this.getFortuneFromVisitors(base, reforge);
51
- if (visitors > 0) {
52
- this.fortuneBreakdown['Green Thumb'] = visitors;
53
- sum += visitors;
54
- }
55
- // Piece bonus
56
- const pieceBonus = this.getPieceBonus();
57
- if (pieceBonus > 0) {
58
- this.fortuneBreakdown['Salesperson'] = pieceBonus;
59
- sum += pieceBonus;
60
- }
61
- this.fortune = sum;
62
- return sum;
63
- }
64
- getFortuneFromVisitors(base, reforge) {
65
- if (!this.item.enchantments?.green_thumb)
66
- return 0;
67
- const regex = /§7Farming Fortune: §a\+(\d+.?\d+)/g;
68
- let found = 0;
69
- for (const line of this.item.lore ?? []) {
70
- const number = (0, lore_1.extractNumberFromLine)(line, regex) ?? 0;
71
- if (!number)
72
- continue;
73
- found = +number;
74
- break;
75
- }
76
- if (found === 0)
77
- return 0;
78
- return Math.max(0, found - base - reforge);
79
- }
80
- getPieceBonus() {
81
- const regex = /§7Piece Bonus: §6\+(\d+)☘/g;
82
- let found = 0;
83
- for (const line of (this.item.lore ?? []).reverse()) {
84
- const number = (0, lore_1.extractNumberFromLine)(line, regex) ?? 0;
85
- if (!number)
86
- continue;
87
- found = number;
88
- break;
89
- }
90
- return found;
91
- }
92
- static isValid(item) {
93
- return lotus_1.LOTUS_GEAR_INFO[item.skyblockId] !== undefined;
94
- }
95
- static fromArray(items, options) {
96
- const gear = items
97
- .filter((item) => LotusGear.isValid(item))
98
- .map((item) => new LotusGear(item, options))
99
- .sort((a, b) => b.fortune - a.fortune);
100
- // Get only the best piece of each slot
101
- const best = {};
102
- for (const piece of gear) {
103
- if (!best[piece.slot] || piece.fortune > (best[piece.slot]?.fortune ?? 0)) {
104
- best[piece.slot] = piece;
105
- }
106
- }
107
- return Object.values(best);
108
- }
9
+ item;
10
+ info;
11
+ get slot() {
12
+ return this.info.slot;
13
+ }
14
+ constructor(item, options) {
15
+ this.options = options;
16
+ this.item = item;
17
+ const INFO = LOTUS_1.LOTUS_GEAR_INFO[item.skyblockId];
18
+ if (!INFO) {
19
+ throw new Error(`Unknown lotus gear: ${item.name} (${item.skyblockId})`);
20
+ }
21
+ this.info = INFO;
22
+ if (item.lore) {
23
+ this.rarity = (0, ITEMSTATS_1.getRarityFromLore)(item.lore);
24
+ }
25
+ this.reforge = REFORGES_1.REFORGES[item.attributes?.modifier ?? ''] ?? undefined;
26
+ this.reforgeStats = this.reforge?.tiers?.[this.rarity];
27
+ this.recombobulated = this.item.attributes?.rarity_upgrades === '1';
28
+ this.getFortune();
29
+ }
30
+ setOptions(options) {
31
+ this.options = options;
32
+ this.getFortune();
33
+ }
34
+ getFortune() {
35
+ this.fortuneBreakdown = {};
36
+ let SUM = 0;
37
+ // Base fortune
38
+ const BASE = this.info.stats?.[REFORGES_1.Stat.FarmingFortune] ?? 0;
39
+ if (BASE > 0) {
40
+ this.fortuneBreakdown['Base Stats'] = BASE;
41
+ SUM += BASE;
42
+ }
43
+ // Reforge
44
+ const REFORGE = this.reforgeStats?.stats?.[REFORGES_1.Stat.FarmingFortune] ?? 0;
45
+ if (REFORGE > 0) {
46
+ this.fortuneBreakdown['Reforge'] = REFORGE;
47
+ SUM += REFORGE;
48
+ }
49
+ // Visitors
50
+ const VISITORS = this.getFortuneFromVisitors(BASE, REFORGE);
51
+ if (VISITORS > 0) {
52
+ this.fortuneBreakdown['Green Thumb'] = VISITORS;
53
+ SUM += VISITORS;
54
+ }
55
+ // Piece bonus
56
+ const PIECE_BONUS = this.getPieceBonus();
57
+ if (PIECE_BONUS > 0) {
58
+ this.fortuneBreakdown['Salesperson'] = PIECE_BONUS;
59
+ SUM += PIECE_BONUS;
60
+ }
61
+ this.fortune = SUM;
62
+ return SUM;
63
+ }
64
+ getFortuneFromVisitors(base, reforge) {
65
+ if (!this.item.enchantments?.green_thumb) return 0;
66
+ const REGEX = /§7Farming Fortune: §a\+(\d+.?\d+)/g;
67
+ let FOUND = 0;
68
+ for (const LINE of this.item.lore ?? []) {
69
+ const NUMBER = (0, LORE_1.extractNumberFromLine)(LINE, REGEX) ?? 0;
70
+ if (!NUMBER) continue;
71
+ FOUND = +NUMBER;
72
+ break;
73
+ }
74
+ if (FOUND === 0) return 0;
75
+ return Math.max(0, FOUND - base - reforge);
76
+ }
77
+ getPieceBonus() {
78
+ const REGEX = /§7Piece Bonus: §6\+(\d+)☘/g;
79
+ let FOUND = 0;
80
+ for (const LINE of (this.item.lore ?? []).reverse()) {
81
+ const NUMBER = (0, LORE_1.extractNumberFromLine)(LINE, REGEX) ?? 0;
82
+ if (!NUMBER) continue;
83
+ FOUND = NUMBER;
84
+ break;
85
+ }
86
+ return FOUND;
87
+ }
88
+ static isValid(item) {
89
+ return LOTUS_1.LOTUS_GEAR_INFO[item.skyblockId] !== undefined;
90
+ }
91
+ static fromArray(items, options) {
92
+ const GEAR = items
93
+ .filter((item) => LotusGear.isValid(item))
94
+ .map((item) => new LotusGear(item, options))
95
+ .sort((a, b) => b.fortune - a.fortune);
96
+ // Get only the best piece of each slot
97
+ const BEST = {};
98
+ for (const PIECE of GEAR) {
99
+ if (!BEST[PIECE.slot] || PIECE.fortune > (BEST[PIECE.slot]?.fortune ?? 0)) {
100
+ BEST[PIECE.slot] = PIECE;
101
+ }
102
+ }
103
+ return Object.values(BEST);
104
+ }
109
105
  }
110
106
  exports.LotusGear = LotusGear;
111
- //# sourceMappingURL=lotusgear.js.map
107
+ //# sourceMappingURL=lotusgear.js.map
@@ -2,72 +2,75 @@ import { Crop } from '../constants/crops';
2
2
  import { FarmingPetType } from '../constants/pets';
3
3
  import { FarmingAccessory } from './farmingaccessory';
4
4
  import { ArmorSet, FarmingArmor } from './farmingarmor';
5
+ import { FarmingEquipment } from './farmingequipment';
5
6
  import { FarmingPet } from './farmingpet';
6
7
  import { FarmingTool } from './farmingtool';
7
8
  import { EliteItemDto } from './item';
8
- import { FarmingEquipment } from './farmingequipment';
9
9
  export interface FortuneMissingFromAPI {
10
- cropUpgrades?: Record<Crop, number>;
11
- gardenLevel?: number;
12
- plotsUnlocked?: number;
13
- uniqueVisitors?: number;
14
- communityCenter?: number;
15
- milestones?: Partial<Record<Crop, number>>;
16
- exportableCrops?: Partial<Record<Crop, boolean>>;
17
- refinedTruffles?: number;
10
+ cropUpgrades?: Record<Crop, number>;
11
+ gardenLevel?: number;
12
+ plotsUnlocked?: number;
13
+ uniqueVisitors?: number;
14
+ communityCenter?: number;
15
+ milestones?: Partial<Record<Crop, number>>;
16
+ exportableCrops?: Partial<Record<Crop, boolean>>;
17
+ refinedTruffles?: number;
18
18
  }
19
19
  export interface ExtraFarmingFortune {
20
- crop?: Crop;
21
- name?: string;
22
- fortune: number;
20
+ crop?: Crop;
21
+ name?: string;
22
+ fortune: number;
23
23
  }
24
24
  export interface PlayerOptions extends FortuneMissingFromAPI {
25
- collection?: Record<string, number>;
26
- farmingXp?: number;
27
- farmingLevel?: number;
28
- strength?: number;
29
- tools?: EliteItemDto[] | FarmingTool[];
30
- armor?: EliteItemDto[] | FarmingArmor[] | ArmorSet;
31
- equipment?: EliteItemDto[] | FarmingEquipment[];
32
- accessories?: EliteItemDto[] | FarmingAccessory[];
33
- pets?: FarmingPetType[] | FarmingPet[];
34
- selectedTool?: FarmingTool;
35
- selectedPet?: FarmingPet;
36
- personalBests?: Record<string, number>;
37
- bestiaryKills?: Record<string, number>;
38
- anitaBonus?: number;
39
- extraFortune?: ExtraFarmingFortune[];
40
- zorro?: boolean;
25
+ collection?: Record<string, number>;
26
+ farmingXp?: number;
27
+ farmingLevel?: number;
28
+ strength?: number;
29
+ tools?: EliteItemDto[] | FarmingTool[];
30
+ armor?: EliteItemDto[] | FarmingArmor[] | ArmorSet;
31
+ equipment?: EliteItemDto[] | FarmingEquipment[];
32
+ accessories?: EliteItemDto[] | FarmingAccessory[];
33
+ pets?: FarmingPetType[] | FarmingPet[];
34
+ selectedTool?: FarmingTool;
35
+ selectedPet?: FarmingPet;
36
+ personalBests?: Record<string, number>;
37
+ bestiaryKills?: Record<string, number>;
38
+ anitaBonus?: number;
39
+ extraFortune?: ExtraFarmingFortune[];
40
+ zorro?: boolean;
41
41
  }
42
42
  export declare function createFarmingPlayer(options: PlayerOptions): FarmingPlayer;
43
43
  export declare class FarmingPlayer {
44
- options: PlayerOptions;
45
- fortune: number;
46
- breakdown: Record<string, number>;
47
- tools: FarmingTool[];
48
- armor: FarmingArmor[];
49
- armorSet: ArmorSet;
50
- equipment: FarmingEquipment[];
51
- accessories: FarmingAccessory[];
52
- pets: FarmingPet[];
53
- selectedTool?: FarmingTool;
54
- selectedPet?: FarmingPet;
55
- constructor(options: PlayerOptions);
56
- changeArmor(armor: FarmingArmor[]): void;
57
- selectTool(tool: FarmingTool): void;
58
- selectPet(pet: FarmingPet): void;
59
- setStrength(strength: number): void;
60
- getGeneralFortune(): number;
61
- getCropFortune(crop: Crop, tool?: FarmingTool | undefined): {
62
- fortune: number;
63
- breakdown: Record<string, number>;
64
- };
44
+ options: PlayerOptions;
45
+ fortune: number;
46
+ breakdown: Record<string, number>;
47
+ tools: FarmingTool[];
48
+ armor: FarmingArmor[];
49
+ armorSet: ArmorSet;
50
+ equipment: FarmingEquipment[];
51
+ accessories: FarmingAccessory[];
52
+ pets: FarmingPet[];
53
+ selectedTool?: FarmingTool;
54
+ selectedPet?: FarmingPet;
55
+ constructor(options: PlayerOptions);
56
+ changeArmor(armor: FarmingArmor[]): void;
57
+ selectTool(tool: FarmingTool): void;
58
+ selectPet(pet: FarmingPet): void;
59
+ setStrength(strength: number): void;
60
+ getGeneralFortune(): number;
61
+ getCropFortune(
62
+ crop: Crop,
63
+ tool?: FarmingTool | undefined
64
+ ): {
65
+ fortune: number;
66
+ breakdown: Record<string, number>;
67
+ };
65
68
  }
66
69
  export interface JacobFarmingContest {
67
- crop: Crop;
68
- timestamp: number;
69
- collected: number;
70
- position?: number;
71
- participants?: number;
72
- medal?: number;
70
+ crop: Crop;
71
+ timestamp: number;
72
+ collected: number;
73
+ position?: number;
74
+ participants?: number;
75
+ medal?: number;
73
76
  }