farming-weight 0.3.3 → 0.3.4
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.
- package/dist/classes/farmingaccessory.js +12 -8
- package/dist/classes/farmingaccessory.js.map +1 -1
- package/dist/classes/farmingarmor.js +32 -27
- package/dist/classes/farmingarmor.js.map +1 -1
- package/dist/classes/farmingpet.js +24 -18
- package/dist/classes/farmingpet.js.map +1 -1
- package/dist/classes/farmingtool.js +28 -24
- package/dist/classes/farmingtool.js.map +1 -1
- package/dist/classes/item.js +2 -1
- package/dist/classes/lotusgear.js +17 -13
- package/dist/classes/lotusgear.js.map +1 -1
- package/dist/classes/player.js +37 -32
- package/dist/classes/player.js.map +1 -1
- package/dist/classes/weightcalc.js +31 -27
- package/dist/classes/weightcalc.js.map +1 -1
- package/dist/constants/accessories.js +14 -11
- package/dist/constants/accessories.js.map +1 -1
- package/dist/constants/armor.js +128 -125
- package/dist/constants/armor.js.map +1 -1
- package/dist/constants/crops.js +9 -9
- package/dist/constants/crops.js.map +1 -1
- package/dist/constants/enchants.js +70 -67
- package/dist/constants/enchants.js.map +1 -1
- package/dist/constants/lotus.js +29 -26
- package/dist/constants/lotus.js.map +1 -1
- package/dist/constants/personalbests.js +21 -17
- package/dist/constants/personalbests.js.map +1 -1
- package/dist/constants/pests.js +11 -6
- package/dist/constants/pests.js.map +1 -1
- package/dist/constants/pets.js +25 -22
- package/dist/constants/pets.js.map +1 -1
- package/dist/constants/reforges.js +12 -9
- package/dist/constants/reforges.js.map +1 -1
- package/dist/constants/skills.js +5 -2
- package/dist/constants/skills.js.map +1 -1
- package/dist/constants/specialcrops.js +19 -16
- package/dist/constants/specialcrops.js.map +1 -1
- package/dist/constants/specific.js +8 -5
- package/dist/constants/specific.js.map +1 -1
- package/dist/constants/tools.js +108 -105
- package/dist/constants/tools.js.map +1 -1
- package/dist/constants/weight.js +18 -15
- package/dist/constants/weight.js.map +1 -1
- package/dist/crops/melon.js +5 -1
- package/dist/crops/melon.js.map +1 -1
- package/dist/crops/pumpkin.js +5 -1
- package/dist/crops/pumpkin.js.map +1 -1
- package/dist/crops/special.js +10 -6
- package/dist/crops/special.js.map +1 -1
- package/dist/index.js +42 -26
- package/dist/index.js.map +1 -1
- package/dist/util/itemstats.js +56 -50
- package/dist/util/itemstats.js.map +1 -1
- package/dist/util/jacob.js +10 -5
- package/dist/util/jacob.js.map +1 -1
- package/dist/util/lore.js +5 -1
- package/dist/util/lore.js.map +1 -1
- package/dist/util/names.js +89 -80
- package/dist/util/names.js.map +1 -1
- package/dist/util/ratecalc.js +69 -59
- package/dist/util/ratecalc.js.map +1 -1
- package/dist/util/skyblocktime.js +5 -1
- package/dist/util/skyblocktime.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,18 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FarmingAccessory = void 0;
|
|
4
|
+
const accessories_1 = require("../constants/accessories");
|
|
5
|
+
const reforges_1 = require("../constants/reforges");
|
|
6
|
+
const itemstats_1 = require("../util/itemstats");
|
|
7
|
+
class FarmingAccessory {
|
|
5
8
|
item;
|
|
6
9
|
info;
|
|
7
10
|
constructor(item) {
|
|
8
11
|
this.item = item;
|
|
9
|
-
const info = FARMING_ACCESSORIES_INFO[item.skyblockId];
|
|
12
|
+
const info = accessories_1.FARMING_ACCESSORIES_INFO[item.skyblockId];
|
|
10
13
|
if (!info) {
|
|
11
14
|
throw new Error(`Unknown lotus gear: ${item.name} (${item.skyblockId})`);
|
|
12
15
|
}
|
|
13
16
|
this.info = info;
|
|
14
17
|
if (item.lore) {
|
|
15
|
-
this.rarity = getRarityFromLore(item.lore);
|
|
18
|
+
this.rarity = (0, itemstats_1.getRarityFromLore)(item.lore);
|
|
16
19
|
}
|
|
17
20
|
this.recombobulated = this.item.attributes?.rarity_upgrades === '1';
|
|
18
21
|
this.sumFortune();
|
|
@@ -21,7 +24,7 @@ export class FarmingAccessory {
|
|
|
21
24
|
this.fortuneBreakdown = {};
|
|
22
25
|
let sum = 0;
|
|
23
26
|
// Base fortune
|
|
24
|
-
const base = this.info.stats?.[Stat.FarmingFortune] ?? 0;
|
|
27
|
+
const base = this.info.stats?.[reforges_1.Stat.FarmingFortune] ?? 0;
|
|
25
28
|
if (base > 0) {
|
|
26
29
|
this.fortuneBreakdown['Base Stats'] = base;
|
|
27
30
|
sum += base;
|
|
@@ -30,7 +33,7 @@ export class FarmingAccessory {
|
|
|
30
33
|
return sum;
|
|
31
34
|
}
|
|
32
35
|
static isValid(item) {
|
|
33
|
-
return FARMING_ACCESSORIES_INFO[item.skyblockId] !== undefined;
|
|
36
|
+
return accessories_1.FARMING_ACCESSORIES_INFO[item.skyblockId] !== undefined;
|
|
34
37
|
}
|
|
35
38
|
static fromArray(items) {
|
|
36
39
|
return items
|
|
@@ -39,4 +42,5 @@ export class FarmingAccessory {
|
|
|
39
42
|
.sort((a, b) => b.fortune - a.fortune);
|
|
40
43
|
}
|
|
41
44
|
}
|
|
45
|
+
exports.FarmingAccessory = FarmingAccessory;
|
|
42
46
|
//# sourceMappingURL=farmingaccessory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"farmingaccessory.js","sourceRoot":"","sources":["../../src/classes/farmingaccessory.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"farmingaccessory.js","sourceRoot":"","sources":["../../src/classes/farmingaccessory.ts"],"names":[],"mappings":";;;AAAA,0DAA0F;AAC1F,oDAAqD;AACrD,iDAAsD;AAGtD,MAAa,gBAAgB;IACZ,IAAI,CAAe;IACnB,IAAI,CAAuB;IAQ3C,YAAY,IAAkB;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,MAAM,IAAI,GAAG,sCAAwB,CAAC,IAAI,CAAC,UAAmD,CAAC,CAAC;QAChG,IAAI,CAAC,IAAI,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACzE;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,GAAG,IAAA,6BAAiB,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3C;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,KAAK,GAAG,CAAC;QAEpE,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IAEO,UAAU;QACjB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,GAAG,GAAG,CAAC,CAAC;QAEZ,eAAe;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,eAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,IAAI,GAAG,CAAC,EAAE;YACb,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;YAC3C,GAAG,IAAI,IAAI,CAAC;SACZ;QAED,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,IAAkB;QAChC,OAAO,sCAAwB,CAAC,IAAI,CAAC,UAAmD,CAAC,KAAK,SAAS,CAAC;IACzG,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAqB;QACrC,OAAO,KAAK;aACV,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aAChD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;aACzC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;CACD;AArDD,4CAqDC"}
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FarmingArmor = exports.ArmorSet = void 0;
|
|
4
|
+
const armor_1 = require("../constants/armor");
|
|
5
|
+
const enchants_1 = require("../constants/enchants");
|
|
6
|
+
const reforges_1 = require("../constants/reforges");
|
|
7
|
+
const skills_1 = require("../constants/skills");
|
|
8
|
+
const specialcrops_1 = require("../constants/specialcrops");
|
|
9
|
+
const special_1 = require("../crops/special");
|
|
10
|
+
const itemstats_1 = require("../util/itemstats");
|
|
11
|
+
class ArmorSet {
|
|
9
12
|
constructor(armor) {
|
|
10
|
-
this.helmet = armor.find((a) => a.slot === GearSlot.Helmet);
|
|
11
|
-
this.chestplate = armor.find((a) => a.slot === GearSlot.Chestplate);
|
|
12
|
-
this.leggings = armor.find((a) => a.slot === GearSlot.Leggings);
|
|
13
|
-
this.boots = armor.find((a) => a.slot === GearSlot.Boots);
|
|
13
|
+
this.helmet = armor.find((a) => a.slot === armor_1.GearSlot.Helmet);
|
|
14
|
+
this.chestplate = armor.find((a) => a.slot === armor_1.GearSlot.Chestplate);
|
|
15
|
+
this.leggings = armor.find((a) => a.slot === armor_1.GearSlot.Leggings);
|
|
16
|
+
this.boots = armor.find((a) => a.slot === armor_1.GearSlot.Boots);
|
|
14
17
|
this.recalculateFamilies();
|
|
15
18
|
}
|
|
16
19
|
recalculateFamilies() {
|
|
@@ -25,7 +28,7 @@ export class ArmorSet {
|
|
|
25
28
|
for (const [family, count] of families.entries()) {
|
|
26
29
|
if (count < 2)
|
|
27
30
|
continue;
|
|
28
|
-
const bonus = ARMOR_SET_BONUS[family];
|
|
31
|
+
const bonus = armor_1.ARMOR_SET_BONUS[family];
|
|
29
32
|
if (!bonus)
|
|
30
33
|
continue;
|
|
31
34
|
this.setBonuses.push({
|
|
@@ -52,7 +55,7 @@ export class ArmorSet {
|
|
|
52
55
|
for (const { bonus, count } of this.setBonuses) {
|
|
53
56
|
if (count < 2 || count > 4)
|
|
54
57
|
continue;
|
|
55
|
-
const fortune = bonus.stats?.[count]?.[Stat.FarmingFortune] ?? 0;
|
|
58
|
+
const fortune = bonus.stats?.[count]?.[reforges_1.Stat.FarmingFortune] ?? 0;
|
|
56
59
|
if (fortune > 0) {
|
|
57
60
|
breakdown[bonus.name] = fortune;
|
|
58
61
|
sum += fortune;
|
|
@@ -62,7 +65,7 @@ export class ArmorSet {
|
|
|
62
65
|
return breakdown;
|
|
63
66
|
}
|
|
64
67
|
specialDropsCalc(blocksBroken, crop) {
|
|
65
|
-
const special = MATCHING_SPECIAL_CROP[crop];
|
|
68
|
+
const special = specialcrops_1.MATCHING_SPECIAL_CROP[crop];
|
|
66
69
|
const applicableBonuses = this.setBonuses.filter((b) => b.special?.includes(special));
|
|
67
70
|
if (applicableBonuses.length === 0)
|
|
68
71
|
return null;
|
|
@@ -74,28 +77,29 @@ export class ArmorSet {
|
|
|
74
77
|
for (const bonus of applicableBonuses) {
|
|
75
78
|
count += bonus.count;
|
|
76
79
|
}
|
|
77
|
-
return calculateAverageSpecialCrops(blocksBroken, crop, count);
|
|
80
|
+
return (0, special_1.calculateAverageSpecialCrops)(blocksBroken, crop, count);
|
|
78
81
|
}
|
|
79
82
|
get armor() {
|
|
80
83
|
return [this.helmet ?? null, this.chestplate ?? null, this.leggings ?? null, this.boots ?? null];
|
|
81
84
|
}
|
|
82
85
|
}
|
|
83
|
-
|
|
86
|
+
exports.ArmorSet = ArmorSet;
|
|
87
|
+
class FarmingArmor {
|
|
84
88
|
get slot() {
|
|
85
89
|
return this.armor.slot;
|
|
86
90
|
}
|
|
87
91
|
constructor(item, options) {
|
|
88
92
|
this.options = options;
|
|
89
93
|
this.item = item;
|
|
90
|
-
const armor = ARMOR_INFO[item.skyblockId];
|
|
94
|
+
const armor = armor_1.ARMOR_INFO[item.skyblockId];
|
|
91
95
|
if (!armor) {
|
|
92
96
|
throw new Error(`Unknown farming armor: ${item.name} (${item.skyblockId})`);
|
|
93
97
|
}
|
|
94
98
|
this.armor = armor;
|
|
95
99
|
if (item.lore) {
|
|
96
|
-
this.rarity = getRarityFromLore(item.lore);
|
|
100
|
+
this.rarity = (0, itemstats_1.getRarityFromLore)(item.lore);
|
|
97
101
|
}
|
|
98
|
-
this.reforge = REFORGES[item.attributes?.modifier ?? ''] ?? undefined;
|
|
102
|
+
this.reforge = reforges_1.REFORGES[item.attributes?.modifier ?? ''] ?? undefined;
|
|
99
103
|
this.reforgeStats = this.reforge?.tiers?.[this.rarity];
|
|
100
104
|
this.recombobulated = this.item.attributes?.rarity_upgrades === '1';
|
|
101
105
|
this.sumFortune();
|
|
@@ -104,21 +108,21 @@ export class FarmingArmor {
|
|
|
104
108
|
this.fortuneBreakdown = {};
|
|
105
109
|
let sum = 0;
|
|
106
110
|
// Base fortune
|
|
107
|
-
const base = this.armor.stats?.[Stat.FarmingFortune] ?? 0;
|
|
111
|
+
const base = this.armor.stats?.[reforges_1.Stat.FarmingFortune] ?? 0;
|
|
108
112
|
if (base > 0) {
|
|
109
113
|
this.fortuneBreakdown['Base Stats'] = base;
|
|
110
114
|
sum += base;
|
|
111
115
|
}
|
|
112
116
|
// Per farming level stats like Rancher's Boots
|
|
113
|
-
if (this.armor.perLevelStats?.skill === Skill.Farming && this.options?.farmingLevel) {
|
|
114
|
-
const perLevel = this.armor.perLevelStats?.stats[Stat.FarmingFortune] ?? 0;
|
|
117
|
+
if (this.armor.perLevelStats?.skill === skills_1.Skill.Farming && this.options?.farmingLevel) {
|
|
118
|
+
const perLevel = this.armor.perLevelStats?.stats[reforges_1.Stat.FarmingFortune] ?? 0;
|
|
115
119
|
if (perLevel > 0) {
|
|
116
120
|
this.fortuneBreakdown['Farming Level'] = perLevel * this.options.farmingLevel;
|
|
117
121
|
sum += perLevel * this.options.farmingLevel;
|
|
118
122
|
}
|
|
119
123
|
}
|
|
120
124
|
// Reforge stats
|
|
121
|
-
const reforge = this.reforgeStats?.stats?.[Stat.FarmingFortune] ?? 0;
|
|
125
|
+
const reforge = this.reforgeStats?.stats?.[reforges_1.Stat.FarmingFortune] ?? 0;
|
|
122
126
|
if (reforge > 0) {
|
|
123
127
|
this.fortuneBreakdown[this.reforge?.name ?? 'Reforge'] = reforge;
|
|
124
128
|
sum += reforge;
|
|
@@ -128,10 +132,10 @@ export class FarmingArmor {
|
|
|
128
132
|
for (const [enchant, level] of enchantments) {
|
|
129
133
|
if (!level)
|
|
130
134
|
continue;
|
|
131
|
-
const enchantment = FARMING_ARMOR_ENCHANTS[enchant];
|
|
135
|
+
const enchantment = enchants_1.FARMING_ARMOR_ENCHANTS[enchant];
|
|
132
136
|
if (!enchantment || !level)
|
|
133
137
|
continue;
|
|
134
|
-
const fortune = enchantment.levels?.[level]?.[Stat.FarmingFortune] ?? 0;
|
|
138
|
+
const fortune = enchantment.levels?.[level]?.[reforges_1.Stat.FarmingFortune] ?? 0;
|
|
135
139
|
if (fortune > 0) {
|
|
136
140
|
this.fortuneBreakdown[enchantment.name] = fortune;
|
|
137
141
|
sum += fortune;
|
|
@@ -141,7 +145,7 @@ export class FarmingArmor {
|
|
|
141
145
|
return sum;
|
|
142
146
|
}
|
|
143
147
|
static isValid(item) {
|
|
144
|
-
return ARMOR_INFO[item.skyblockId] !== undefined;
|
|
148
|
+
return armor_1.ARMOR_INFO[item.skyblockId] !== undefined;
|
|
145
149
|
}
|
|
146
150
|
static fromArray(items, options) {
|
|
147
151
|
return items
|
|
@@ -150,4 +154,5 @@ export class FarmingArmor {
|
|
|
150
154
|
.sort((a, b) => b.fortune - a.fortune);
|
|
151
155
|
}
|
|
152
156
|
}
|
|
157
|
+
exports.FarmingArmor = FarmingArmor;
|
|
153
158
|
//# sourceMappingURL=farmingarmor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"farmingarmor.js","sourceRoot":"","sources":["../../src/classes/farmingarmor.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"farmingarmor.js","sourceRoot":"","sources":["../../src/classes/farmingarmor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPetLevel = exports.FarmingPet = exports.createFarmingPet = void 0;
|
|
4
|
+
const pets_1 = require("../constants/pets");
|
|
5
|
+
const reforges_1 = require("../constants/reforges");
|
|
6
|
+
const skills_1 = require("../constants/skills");
|
|
7
|
+
const itemstats_1 = require("../util/itemstats");
|
|
8
|
+
function createFarmingPet(pet) {
|
|
6
9
|
return new FarmingPet(pet);
|
|
7
10
|
}
|
|
8
|
-
|
|
11
|
+
exports.createFarmingPet = createFarmingPet;
|
|
12
|
+
class FarmingPet {
|
|
9
13
|
constructor(pet, options) {
|
|
10
14
|
this.options = options;
|
|
11
15
|
this.pet = pet;
|
|
12
|
-
this.info = FARMING_PETS[pet.type];
|
|
16
|
+
this.info = pets_1.FARMING_PETS[pet.type];
|
|
13
17
|
if (!this.info) {
|
|
14
18
|
throw new Error(`Invalid farming pet type: ${pet.type}`);
|
|
15
19
|
}
|
|
16
20
|
this.type = pet.type;
|
|
17
|
-
this.rarity = getRarityFromLore([pet.tier ?? '']) ?? Rarity.Common;
|
|
21
|
+
this.rarity = (0, itemstats_1.getRarityFromLore)([pet.tier ?? '']) ?? reforges_1.Rarity.Common;
|
|
18
22
|
this.level = getPetLevel(pet);
|
|
19
|
-
this.item = pet.heldItem ? FARMING_PET_ITEMS[pet.heldItem] : undefined;
|
|
23
|
+
this.item = pet.heldItem ? pets_1.FARMING_PET_ITEMS[pet.heldItem] : undefined;
|
|
20
24
|
this.fortune = this.getFortune();
|
|
21
25
|
}
|
|
22
26
|
setOptions(options) {
|
|
@@ -27,20 +31,20 @@ export class FarmingPet {
|
|
|
27
31
|
let fortune = 0;
|
|
28
32
|
const breakdown = {};
|
|
29
33
|
// Base stats
|
|
30
|
-
const stats = this.info.stats?.[Stat.FarmingFortune];
|
|
34
|
+
const stats = this.info.stats?.[reforges_1.Stat.FarmingFortune];
|
|
31
35
|
if (stats) {
|
|
32
36
|
fortune += stats;
|
|
33
37
|
breakdown['Base Stats'] = stats;
|
|
34
38
|
}
|
|
35
39
|
// Per level/ability stats
|
|
36
|
-
const perLevelStats = this.info.perLevelStats?.[Stat.FarmingFortune];
|
|
40
|
+
const perLevelStats = this.info.perLevelStats?.[reforges_1.Stat.FarmingFortune];
|
|
37
41
|
if (perLevelStats) {
|
|
38
42
|
const amount = perLevelStats.multiplier * this.level;
|
|
39
43
|
fortune += amount;
|
|
40
44
|
breakdown[perLevelStats.name] = amount;
|
|
41
45
|
}
|
|
42
46
|
// Mooshroom Cow Perk
|
|
43
|
-
if (this.type === FarmingPets.MooshroomCow && this.options?.strength) {
|
|
47
|
+
if (this.type === pets_1.FarmingPets.MooshroomCow && this.options?.strength) {
|
|
44
48
|
const strengthPer = 40 - this.level * 0.2;
|
|
45
49
|
const strength = this.options.strength;
|
|
46
50
|
const amount = Math.floor((strength / strengthPer) * 0.7);
|
|
@@ -49,14 +53,14 @@ export class FarmingPet {
|
|
|
49
53
|
}
|
|
50
54
|
// Pet item stats
|
|
51
55
|
if (this.item) {
|
|
52
|
-
const stats = this.item.stats?.[Stat.FarmingFortune];
|
|
56
|
+
const stats = this.item.stats?.[reforges_1.Stat.FarmingFortune];
|
|
53
57
|
const perLevelStats = this.item.perLevelStats;
|
|
54
58
|
if (stats) {
|
|
55
59
|
fortune += stats;
|
|
56
60
|
breakdown[this.item.name + ' Stats'] = stats;
|
|
57
61
|
}
|
|
58
|
-
if (perLevelStats && perLevelStats.skill === Skill.Garden) {
|
|
59
|
-
const amount = (perLevelStats?.stats?.[Stat.FarmingFortune] ?? 0) * (this.options?.gardenLevel ?? 0);
|
|
62
|
+
if (perLevelStats && perLevelStats.skill === skills_1.Skill.Garden) {
|
|
63
|
+
const amount = (perLevelStats?.stats?.[reforges_1.Stat.FarmingFortune] ?? 0) * (this.options?.gardenLevel ?? 0);
|
|
60
64
|
fortune += amount;
|
|
61
65
|
breakdown[this.item.name] = amount;
|
|
62
66
|
}
|
|
@@ -66,7 +70,7 @@ export class FarmingPet {
|
|
|
66
70
|
return fortune;
|
|
67
71
|
}
|
|
68
72
|
static isValid(pet) {
|
|
69
|
-
return pet.type && pet.type in FARMING_PETS;
|
|
73
|
+
return pet.type && pet.type in pets_1.FARMING_PETS;
|
|
70
74
|
}
|
|
71
75
|
static fromArray(items, options) {
|
|
72
76
|
return items
|
|
@@ -75,8 +79,9 @@ export class FarmingPet {
|
|
|
75
79
|
.sort((a, b) => b.fortune - a.fortune);
|
|
76
80
|
}
|
|
77
81
|
}
|
|
78
|
-
|
|
79
|
-
|
|
82
|
+
exports.FarmingPet = FarmingPet;
|
|
83
|
+
function getPetLevel(pet, max = 100) {
|
|
84
|
+
const levels = pets_1.PET_LEVELS;
|
|
80
85
|
const xp = pet.exp ?? 0;
|
|
81
86
|
const levelIndex = levels.findIndex((level) => level > xp);
|
|
82
87
|
if (levelIndex === -1 || levelIndex >= max) {
|
|
@@ -84,4 +89,5 @@ export function getPetLevel(pet, max = 100) {
|
|
|
84
89
|
}
|
|
85
90
|
return levelIndex + 1;
|
|
86
91
|
}
|
|
92
|
+
exports.getPetLevel = getPetLevel;
|
|
87
93
|
//# sourceMappingURL=farmingpet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"farmingpet.js","sourceRoot":"","sources":["../../src/classes/farmingpet.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"farmingpet.js","sourceRoot":"","sources":["../../src/classes/farmingpet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FarmingTool = void 0;
|
|
4
|
+
const enchants_1 = require("../constants/enchants");
|
|
5
|
+
const reforges_1 = require("../constants/reforges");
|
|
6
|
+
const tools_1 = require("../constants/tools");
|
|
7
|
+
const itemstats_1 = require("../util/itemstats");
|
|
8
|
+
const lore_1 = require("../util/lore");
|
|
9
|
+
class FarmingTool {
|
|
7
10
|
get name() {
|
|
8
11
|
return this.colorPrefix + (this.reforge?.name ?? '') + ' ' + this.itemname;
|
|
9
12
|
}
|
|
@@ -17,14 +20,14 @@ export class FarmingTool {
|
|
|
17
20
|
rebuildTool(item, options) {
|
|
18
21
|
this.options = options;
|
|
19
22
|
this.item = item;
|
|
20
|
-
const tool = FARMING_TOOLS[item.skyblockId];
|
|
23
|
+
const tool = tools_1.FARMING_TOOLS[item.skyblockId];
|
|
21
24
|
if (!tool) {
|
|
22
25
|
throw new Error(`Unknown farming tool: ${item.name} (${item.skyblockId})`);
|
|
23
26
|
}
|
|
24
27
|
this.tool = tool;
|
|
25
28
|
this.crop = tool.crop;
|
|
26
29
|
if (item.lore) {
|
|
27
|
-
this.rarity = getRarityFromLore(item.lore);
|
|
30
|
+
this.rarity = (0, itemstats_1.getRarityFromLore)(item.lore);
|
|
28
31
|
}
|
|
29
32
|
this.counter = this.getCounter();
|
|
30
33
|
this.cultivating = this.getCultivating() ?? 0;
|
|
@@ -45,7 +48,7 @@ export class FarmingTool {
|
|
|
45
48
|
}
|
|
46
49
|
}
|
|
47
50
|
setReforge(reforgeId) {
|
|
48
|
-
this.reforge = REFORGES[reforgeId] ?? undefined;
|
|
51
|
+
this.reforge = reforges_1.REFORGES[reforgeId] ?? undefined;
|
|
49
52
|
this.reforgeStats = this.reforge?.tiers?.[this.rarity];
|
|
50
53
|
}
|
|
51
54
|
changeReforgeTo(reforgeId) {
|
|
@@ -53,7 +56,7 @@ export class FarmingTool {
|
|
|
53
56
|
this.fortune = this.getFortune();
|
|
54
57
|
}
|
|
55
58
|
changeFarmedCropsTo(crops) {
|
|
56
|
-
if (this.tool.type !== FarmingToolType.MathematicalHoe)
|
|
59
|
+
if (this.tool.type !== tools_1.FarmingToolType.MathematicalHoe)
|
|
57
60
|
return;
|
|
58
61
|
const digits = Math.floor(crops).toString().length - 4;
|
|
59
62
|
if (this.logCounter > 0) {
|
|
@@ -68,20 +71,20 @@ export class FarmingTool {
|
|
|
68
71
|
this.fortuneBreakdown = {};
|
|
69
72
|
let sum = 0;
|
|
70
73
|
// Base fortune
|
|
71
|
-
const base = this.tool.baseStats?.[Stat.FarmingFortune] ?? 0;
|
|
74
|
+
const base = this.tool.baseStats?.[reforges_1.Stat.FarmingFortune] ?? 0;
|
|
72
75
|
if (base > 0) {
|
|
73
76
|
this.fortuneBreakdown['Tool Bonus'] = base;
|
|
74
77
|
sum += base;
|
|
75
78
|
}
|
|
76
79
|
// Tool rarity stats
|
|
77
|
-
const baseRarity = this.recombobulated ? previousRarity(this.rarity) : this.rarity;
|
|
78
|
-
const rarityStats = this.tool.stats?.[baseRarity]?.[Stat.FarmingFortune] ?? 0;
|
|
80
|
+
const baseRarity = this.recombobulated ? (0, itemstats_1.previousRarity)(this.rarity) : this.rarity;
|
|
81
|
+
const rarityStats = this.tool.stats?.[baseRarity]?.[reforges_1.Stat.FarmingFortune] ?? 0;
|
|
79
82
|
if (rarityStats > 0) {
|
|
80
83
|
this.fortuneBreakdown['Tool Stats'] = rarityStats;
|
|
81
84
|
sum += rarityStats;
|
|
82
85
|
}
|
|
83
86
|
// Reforge stats
|
|
84
|
-
const reforge = this.reforgeStats?.stats?.[Stat.FarmingFortune] ?? 0;
|
|
87
|
+
const reforge = this.reforgeStats?.stats?.[reforges_1.Stat.FarmingFortune] ?? 0;
|
|
85
88
|
if (reforge > 0) {
|
|
86
89
|
this.fortuneBreakdown[this.reforge?.name ?? 'Reforge'] = reforge;
|
|
87
90
|
sum += reforge;
|
|
@@ -92,7 +95,7 @@ export class FarmingTool {
|
|
|
92
95
|
sum += this.farmingForDummies;
|
|
93
96
|
}
|
|
94
97
|
// Collection analysis and digit bonuses
|
|
95
|
-
if (this.tool.type === FarmingToolType.MathematicalHoe) {
|
|
98
|
+
if (this.tool.type === tools_1.FarmingToolType.MathematicalHoe) {
|
|
96
99
|
this.getFarmingAbilityFortune(this);
|
|
97
100
|
if (this.logCounter > 0) {
|
|
98
101
|
this.fortuneBreakdown['Logarithmic Counter'] = this.logCounter;
|
|
@@ -108,19 +111,19 @@ export class FarmingTool {
|
|
|
108
111
|
for (const [enchant, level] of enchantments) {
|
|
109
112
|
if (!level)
|
|
110
113
|
continue;
|
|
111
|
-
if (enchant in TURBO_ENCHANTS) {
|
|
112
|
-
const matchingCrop = TURBO_ENCHANTS[enchant];
|
|
114
|
+
if (enchant in enchants_1.TURBO_ENCHANTS) {
|
|
115
|
+
const matchingCrop = enchants_1.TURBO_ENCHANTS[enchant];
|
|
113
116
|
if (!matchingCrop || matchingCrop !== this.crop)
|
|
114
117
|
continue;
|
|
115
|
-
const gain = TURBO_ENCHANT_FORTUNE * level;
|
|
118
|
+
const gain = enchants_1.TURBO_ENCHANT_FORTUNE * level;
|
|
116
119
|
this.fortuneBreakdown['Turbo'] = gain;
|
|
117
120
|
sum += gain;
|
|
118
121
|
continue;
|
|
119
122
|
}
|
|
120
|
-
const enchantment = FARMING_ENCHANTS[enchant];
|
|
123
|
+
const enchantment = enchants_1.FARMING_ENCHANTS[enchant];
|
|
121
124
|
if (!enchantment || !level)
|
|
122
125
|
continue;
|
|
123
|
-
const fortune = enchantment.levels?.[level]?.[Stat.FarmingFortune] ?? 0;
|
|
126
|
+
const fortune = enchantment.levels?.[level]?.[reforges_1.Stat.FarmingFortune] ?? 0;
|
|
124
127
|
if (fortune > 0) {
|
|
125
128
|
this.fortuneBreakdown[enchantment.name] = fortune;
|
|
126
129
|
sum += fortune;
|
|
@@ -129,9 +132,9 @@ export class FarmingTool {
|
|
|
129
132
|
const milestone = this.options?.milestones?.[this.crop] ?? 0;
|
|
130
133
|
if (milestone && 'dedication' in (this.item.enchantments ?? {})) {
|
|
131
134
|
const level = this.item.enchantments?.dedication;
|
|
132
|
-
const enchantment = FARMING_ENCHANTS.dedication;
|
|
135
|
+
const enchantment = enchants_1.FARMING_ENCHANTS.dedication;
|
|
133
136
|
if (level && enchantment) {
|
|
134
|
-
const multiplier = enchantment.multipliedLevels?.[level]?.[Stat.FarmingFortune] ?? 0;
|
|
137
|
+
const multiplier = enchantment.multipliedLevels?.[level]?.[reforges_1.Stat.FarmingFortune] ?? 0;
|
|
135
138
|
if (multiplier > 0 && !isNaN(milestone)) {
|
|
136
139
|
this.fortuneBreakdown[enchantment.name] = multiplier * milestone;
|
|
137
140
|
sum += multiplier * milestone;
|
|
@@ -161,7 +164,7 @@ export class FarmingTool {
|
|
|
161
164
|
getFarmingAbilityFortune(tool) {
|
|
162
165
|
const regex = /§7You have §6\+(\d+)☘/g;
|
|
163
166
|
for (const line of tool.item.lore ?? []) {
|
|
164
|
-
const found = extractNumberFromLine(line, regex) ?? 0;
|
|
167
|
+
const found = (0, lore_1.extractNumberFromLine)(line, regex) ?? 0;
|
|
165
168
|
if (!found)
|
|
166
169
|
continue;
|
|
167
170
|
if (!this.logCounter) {
|
|
@@ -176,7 +179,7 @@ export class FarmingTool {
|
|
|
176
179
|
static isValid(item) {
|
|
177
180
|
if (item instanceof FarmingTool)
|
|
178
181
|
return true;
|
|
179
|
-
return FARMING_TOOLS[item.skyblockId] !== undefined;
|
|
182
|
+
return tools_1.FARMING_TOOLS[item.skyblockId] !== undefined;
|
|
180
183
|
}
|
|
181
184
|
static fromArray(items, options) {
|
|
182
185
|
return items
|
|
@@ -185,4 +188,5 @@ export class FarmingTool {
|
|
|
185
188
|
.sort((a, b) => b.fortune - a.fortune);
|
|
186
189
|
}
|
|
187
190
|
}
|
|
191
|
+
exports.FarmingTool = FarmingTool;
|
|
188
192
|
//# sourceMappingURL=farmingtool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"farmingtool.js","sourceRoot":"","sources":["../../src/classes/farmingtool.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"farmingtool.js","sourceRoot":"","sources":["../../src/classes/farmingtool.ts"],"names":[],"mappings":"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"}
|
package/dist/classes/item.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
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");
|
|
8
|
+
class LotusGear {
|
|
6
9
|
item;
|
|
7
10
|
info;
|
|
8
11
|
get slot() {
|
|
@@ -11,15 +14,15 @@ export class LotusGear {
|
|
|
11
14
|
constructor(item, options) {
|
|
12
15
|
this.options = options;
|
|
13
16
|
this.item = item;
|
|
14
|
-
const info = LOTUS_GEAR_INFO[item.skyblockId];
|
|
17
|
+
const info = lotus_1.LOTUS_GEAR_INFO[item.skyblockId];
|
|
15
18
|
if (!info) {
|
|
16
19
|
throw new Error(`Unknown lotus gear: ${item.name} (${item.skyblockId})`);
|
|
17
20
|
}
|
|
18
21
|
this.info = info;
|
|
19
22
|
if (item.lore) {
|
|
20
|
-
this.rarity = getRarityFromLore(item.lore);
|
|
23
|
+
this.rarity = (0, itemstats_1.getRarityFromLore)(item.lore);
|
|
21
24
|
}
|
|
22
|
-
this.reforge = REFORGES[item.attributes?.modifier ?? ''] ?? undefined;
|
|
25
|
+
this.reforge = reforges_1.REFORGES[item.attributes?.modifier ?? ''] ?? undefined;
|
|
23
26
|
this.reforgeStats = this.reforge?.tiers?.[this.rarity];
|
|
24
27
|
this.recombobulated = this.item.attributes?.rarity_upgrades === '1';
|
|
25
28
|
this.getFortune();
|
|
@@ -32,13 +35,13 @@ export class LotusGear {
|
|
|
32
35
|
this.fortuneBreakdown = {};
|
|
33
36
|
let sum = 0;
|
|
34
37
|
// Base fortune
|
|
35
|
-
const base = this.info.stats?.[Stat.FarmingFortune] ?? 0;
|
|
38
|
+
const base = this.info.stats?.[reforges_1.Stat.FarmingFortune] ?? 0;
|
|
36
39
|
if (base > 0) {
|
|
37
40
|
this.fortuneBreakdown['Base Stats'] = base;
|
|
38
41
|
sum += base;
|
|
39
42
|
}
|
|
40
43
|
// Reforge
|
|
41
|
-
const reforge = this.reforgeStats?.stats?.[Stat.FarmingFortune] ?? 0;
|
|
44
|
+
const reforge = this.reforgeStats?.stats?.[reforges_1.Stat.FarmingFortune] ?? 0;
|
|
42
45
|
if (reforge > 0) {
|
|
43
46
|
this.fortuneBreakdown['Reforge'] = reforge;
|
|
44
47
|
sum += reforge;
|
|
@@ -64,7 +67,7 @@ export class LotusGear {
|
|
|
64
67
|
const regex = /§7Farming Fortune: §a\+(\d+.?\d+)/g;
|
|
65
68
|
let found = 0;
|
|
66
69
|
for (const line of this.item.lore ?? []) {
|
|
67
|
-
const number = extractNumberFromLine(line, regex) ?? 0;
|
|
70
|
+
const number = (0, lore_1.extractNumberFromLine)(line, regex) ?? 0;
|
|
68
71
|
if (!number)
|
|
69
72
|
continue;
|
|
70
73
|
found = +number;
|
|
@@ -78,7 +81,7 @@ export class LotusGear {
|
|
|
78
81
|
const regex = /§7Piece Bonus: §6\+(\d+)☘/g;
|
|
79
82
|
let found = 0;
|
|
80
83
|
for (const line of (this.item.lore ?? []).reverse()) {
|
|
81
|
-
const number = extractNumberFromLine(line, regex) ?? 0;
|
|
84
|
+
const number = (0, lore_1.extractNumberFromLine)(line, regex) ?? 0;
|
|
82
85
|
if (!number)
|
|
83
86
|
continue;
|
|
84
87
|
found = number;
|
|
@@ -87,7 +90,7 @@ export class LotusGear {
|
|
|
87
90
|
return found;
|
|
88
91
|
}
|
|
89
92
|
static isValid(item) {
|
|
90
|
-
return LOTUS_GEAR_INFO[item.skyblockId] !== undefined;
|
|
93
|
+
return lotus_1.LOTUS_GEAR_INFO[item.skyblockId] !== undefined;
|
|
91
94
|
}
|
|
92
95
|
static fromArray(items, options) {
|
|
93
96
|
return items
|
|
@@ -96,4 +99,5 @@ export class LotusGear {
|
|
|
96
99
|
.sort((a, b) => b.fortune - a.fortune);
|
|
97
100
|
}
|
|
98
101
|
}
|
|
102
|
+
exports.LotusGear = LotusGear;
|
|
99
103
|
//# sourceMappingURL=lotusgear.js.map
|