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.
- package/dist/classes/farmingaccessory.d.ts +10 -10
- package/dist/classes/farmingaccessory.js +50 -50
- package/dist/classes/farmingarmor.d.ts +41 -38
- package/dist/classes/farmingarmor.js +202 -207
- package/dist/classes/farmingequipment.d.ts +17 -17
- package/dist/classes/farmingequipment.js +105 -109
- package/dist/classes/farmingpet.d.ts +14 -14
- package/dist/classes/farmingpet.js +91 -90
- package/dist/classes/farmingtool.d.ts +34 -34
- package/dist/classes/farmingtool.js +192 -202
- package/dist/classes/item.d.ts +18 -18
- package/dist/classes/item.js +11 -11
- package/dist/classes/lotusgear.d.ts +17 -17
- package/dist/classes/lotusgear.js +103 -107
- package/dist/classes/player.d.ts +58 -55
- package/dist/classes/player.js +215 -228
- package/dist/classes/weightcalc.d.ts +56 -52
- package/dist/classes/weightcalc.js +185 -190
- package/dist/classes/weightcalc.test.js +102 -102
- package/dist/constants/accessories.d.ts +6 -6
- package/dist/constants/accessories.js +51 -51
- package/dist/constants/armor.d.ts +30 -30
- package/dist/constants/armor.js +699 -699
- package/dist/constants/enchants.d.ts +1 -1
- package/dist/constants/enchants.js +56 -56
- package/dist/constants/enchants.js.map +1 -1
- package/dist/constants/equipment.d.ts +20 -20
- package/dist/constants/equipment.js +116 -116
- package/dist/constants/gems.d.ts +2 -2
- package/dist/constants/gems.js +8 -8
- package/dist/constants/items.d.ts +8 -8
- package/dist/constants/items.js +14 -14
- package/dist/constants/lotus.d.ts +20 -20
- package/dist/constants/lotus.js +106 -106
- package/dist/constants/personalbests.d.ts +1 -1
- package/dist/constants/personalbests.js +11 -11
- package/dist/constants/personalbests.js.map +1 -1
- package/dist/constants/pests.d.ts +1 -1
- package/dist/constants/pests.js +77 -84
- package/dist/constants/pests.js.map +1 -1
- package/dist/constants/pets.d.ts +38 -38
- package/dist/constants/pets.js +253 -253
- package/dist/constants/reforges.d.ts +1 -1
- package/dist/constants/reforges.js +1 -1
- package/dist/constants/reforges.js.map +1 -1
- package/dist/constants/specific.d.ts +1 -1
- package/dist/constants/specific.js +6 -6
- package/dist/constants/stats.d.ts +1 -1
- package/dist/constants/tempfortune.js +14 -14
- package/dist/constants/tempfortune.js.map +1 -1
- package/dist/constants/tools.d.ts +7 -7
- package/dist/constants/tools.js +456 -456
- package/dist/constants/upgrades.d.ts +6 -6
- package/dist/constants/weight.js +9 -9
- package/dist/constants/weight.js.map +1 -1
- package/dist/crops/special.js +1 -1
- package/dist/crops/special.js.map +1 -1
- package/dist/fortune/farmingaccessory.d.ts +1 -1
- package/dist/fortune/farmingaccessory.js +1 -1
- package/dist/fortune/farmingaccessory.js.map +1 -1
- package/dist/fortune/farmingarmor.d.ts +4 -3
- package/dist/fortune/farmingarmor.js +28 -17
- package/dist/fortune/farmingarmor.js.map +1 -1
- package/dist/fortune/farmingequipment.d.ts +3 -3
- package/dist/fortune/farmingequipment.js +5 -5
- package/dist/fortune/farmingequipment.js.map +1 -1
- package/dist/fortune/farmingpet.d.ts +3 -3
- package/dist/fortune/farmingpet.js +2 -2
- package/dist/fortune/farmingpet.js.map +1 -1
- package/dist/fortune/farmingtool.d.ts +2 -2
- package/dist/fortune/farmingtool.js +4 -4
- package/dist/fortune/farmingtool.js.map +1 -1
- package/dist/fortune/upgradable.d.ts +35 -33
- package/dist/fortune/upgradable.js +1 -1
- package/dist/fortune/upgradeable.d.ts +6 -6
- package/dist/fortune/upgradeable.js +3 -3
- package/dist/fortune/upgradeable.js.map +1 -1
- package/dist/items/accessories.d.ts +1 -1
- package/dist/items/accessories.js +3 -3
- package/dist/items/accessories.js.map +1 -1
- package/dist/items/armor.d.ts +2 -2
- package/dist/items/armor.js +2 -2
- package/dist/items/armor.js.map +1 -1
- package/dist/items/equipment.js +8 -8
- package/dist/items/equipment.js.map +1 -1
- package/dist/items/pets.d.ts +2 -2
- package/dist/items/pets.js +15 -15
- package/dist/items/pets.js.map +1 -1
- package/dist/items/tools.d.ts +1 -1
- package/dist/items/tools.js +15 -15
- package/dist/items/tools.js.map +1 -1
- package/dist/player/index.js +1 -1
- package/dist/player/player.d.ts +1 -1
- package/dist/player/player.js +9 -9
- package/dist/player/player.js.map +1 -1
- package/dist/player/playeroptions.d.ts +10 -10
- package/dist/player.d.ts +21 -21
- package/dist/player.js +26 -26
- package/dist/ratecalc.d.ts +16 -14
- package/dist/ratecalc.js +148 -145
- package/dist/tool.js +3 -3
- package/dist/upgrades/progress.d.ts +2 -2
- package/dist/upgrades/progress.js +3 -3
- package/dist/upgrades/progress.js.map +1 -1
- package/dist/upgrades/sources/accessorysources.d.ts +2 -2
- package/dist/upgrades/sources/accessorysources.js +10 -8
- package/dist/upgrades/sources/accessorysources.js.map +1 -1
- package/dist/upgrades/sources/armorsetsources.d.ts +2 -2
- package/dist/upgrades/sources/armorsetsources.js +12 -11
- package/dist/upgrades/sources/armorsetsources.js.map +1 -1
- package/dist/upgrades/sources/cropsources.d.ts +3 -3
- package/dist/upgrades/sources/cropsources.js +22 -22
- package/dist/upgrades/sources/cropsources.js.map +1 -1
- package/dist/upgrades/sources/gearsources.d.ts +3 -3
- package/dist/upgrades/sources/gearsources.js +18 -19
- package/dist/upgrades/sources/gearsources.js.map +1 -1
- package/dist/upgrades/sources/generalsources.d.ts +2 -2
- package/dist/upgrades/sources/generalsources.js +18 -16
- package/dist/upgrades/sources/generalsources.js.map +1 -1
- package/dist/upgrades/sources/toolsources.d.ts +5 -5
- package/dist/upgrades/sources/toolsources.js +24 -23
- package/dist/upgrades/sources/toolsources.js.map +1 -1
- package/dist/upgrades/upgrades.d.ts +4 -4
- package/dist/upgrades/upgrades.js +19 -19
- package/dist/upgrades/upgrades.js.map +1 -1
- package/dist/util/enchants.d.ts +3 -3
- package/dist/util/enchants.js +1 -1
- package/dist/util/enchants.js.map +1 -1
- package/dist/util/garden.d.ts +2 -2
- package/dist/util/garden.js +6 -7
- package/dist/util/garden.js.map +1 -1
- package/dist/util/gems.d.ts +2 -2
- package/dist/util/gems.js +24 -14
- package/dist/util/gems.js.map +1 -1
- package/dist/util/pests.js +1 -1
- package/dist/util/pests.js.map +1 -1
- package/dist/util/pests.test.js +27 -25
- package/dist/util/ratecalc.js +2 -2
- package/dist/util/ratecalc.js.map +1 -1
- package/dist/util/skyblocktime.js +1 -1
- package/dist/util/skyblocktime.js.map +1 -1
- package/package.json +36 -48
|
@@ -3,22 +3,22 @@ import { Rarity, Reforge, ReforgeTier } from '../constants/reforges';
|
|
|
3
3
|
import { EliteItemDto } from './item';
|
|
4
4
|
import { PlayerOptions } from './player';
|
|
5
5
|
export declare class FarmingEquipment {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
6
|
+
readonly item: EliteItemDto;
|
|
7
|
+
readonly info: FarmingArmorInfo;
|
|
8
|
+
get slot(): import('../constants/armor').GearSlot;
|
|
9
|
+
readonly rarity: Rarity;
|
|
10
|
+
readonly reforge: Reforge | undefined;
|
|
11
|
+
readonly reforgeStats: ReforgeTier | undefined;
|
|
12
|
+
readonly recombobulated: boolean;
|
|
13
|
+
fortune: number;
|
|
14
|
+
fortuneBreakdown: Record<string, number>;
|
|
15
|
+
private options?;
|
|
16
|
+
constructor(item: EliteItemDto, options?: PlayerOptions);
|
|
17
|
+
setOptions(options: PlayerOptions): void;
|
|
18
|
+
getFortune(): number;
|
|
19
|
+
private getFortuneFromVisitors;
|
|
20
|
+
private getPieceBonus;
|
|
21
|
+
static isValid(item: EliteItemDto): boolean;
|
|
22
|
+
static fromArray(items: EliteItemDto[], options?: PlayerOptions): FarmingEquipment[];
|
|
23
23
|
}
|
|
24
24
|
export declare const LotusGear: typeof FarmingEquipment;
|
|
@@ -1,116 +1,112 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports,
|
|
1
|
+
'use strict';
|
|
2
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
3
3
|
exports.LotusGear = exports.FarmingEquipment = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
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 FarmingEquipment {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
return Object.values(best);
|
|
110
|
-
}
|
|
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.EQUIPMENT_INFO[item.skyblockId];
|
|
18
|
+
if (!INFO) {
|
|
19
|
+
throw new Error(`Unknown equipment: ${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
|
+
// Green Thumb Visitors
|
|
50
|
+
const VISITORS = this.getFortuneFromVisitors(BASE, REFORGE);
|
|
51
|
+
if (VISITORS > 0) {
|
|
52
|
+
this.fortuneBreakdown['Green Thumb'] = VISITORS;
|
|
53
|
+
SUM += VISITORS;
|
|
54
|
+
}
|
|
55
|
+
// Lotus Piece bonus
|
|
56
|
+
if (this.info.family === 'LOTUS') {
|
|
57
|
+
const PIECE_BONUS = this.getPieceBonus();
|
|
58
|
+
if (PIECE_BONUS > 0) {
|
|
59
|
+
this.fortuneBreakdown['Salesperson'] = PIECE_BONUS;
|
|
60
|
+
SUM += PIECE_BONUS;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
this.fortune = SUM;
|
|
64
|
+
return SUM;
|
|
65
|
+
}
|
|
66
|
+
getFortuneFromVisitors(base, reforge) {
|
|
67
|
+
if (!this.item.enchantments?.green_thumb) return 0;
|
|
68
|
+
const REGEX = /§7Farming Fortune: §a\+(\d+.?\d+)/g;
|
|
69
|
+
let FOUND = 0;
|
|
70
|
+
for (const LINE of this.item.lore ?? []) {
|
|
71
|
+
const NUMBER = (0, LORE_1.extractNumberFromLine)(LINE, REGEX) ?? 0;
|
|
72
|
+
if (!NUMBER) continue;
|
|
73
|
+
FOUND = +NUMBER;
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
if (FOUND === 0) return 0;
|
|
77
|
+
return Math.max(0, FOUND - base - reforge);
|
|
78
|
+
}
|
|
79
|
+
getPieceBonus() {
|
|
80
|
+
const REGEX = /§7Piece Bonus: §6\+(\d+)☘/g;
|
|
81
|
+
let FOUND = 0;
|
|
82
|
+
for (const LINE of (this.item.lore ?? []).reverse()) {
|
|
83
|
+
const NUMBER = (0, LORE_1.extractNumberFromLine)(LINE, REGEX) ?? 0;
|
|
84
|
+
if (!NUMBER) continue;
|
|
85
|
+
FOUND = NUMBER;
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
return FOUND;
|
|
89
|
+
}
|
|
90
|
+
static isValid(item) {
|
|
91
|
+
return LOTUS_1.EQUIPMENT_INFO[item.skyblockId] !== undefined;
|
|
92
|
+
}
|
|
93
|
+
static fromArray(items, options) {
|
|
94
|
+
const GEAR = items
|
|
95
|
+
.filter((item) => FarmingEquipment.isValid(item))
|
|
96
|
+
.map((item) => new FarmingEquipment(item, options))
|
|
97
|
+
.sort((a, b) => b.fortune - a.fortune);
|
|
98
|
+
// Get only the best piece of each slot
|
|
99
|
+
const BEST = {};
|
|
100
|
+
for (const PIECE of GEAR) {
|
|
101
|
+
if (!BEST[PIECE.slot] || PIECE.fortune > (BEST[PIECE.slot]?.fortune ?? 0)) {
|
|
102
|
+
BEST[PIECE.slot] = PIECE;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return Object.values(BEST);
|
|
106
|
+
}
|
|
111
107
|
}
|
|
112
108
|
exports.FarmingEquipment = FarmingEquipment;
|
|
113
109
|
// For backwards compatibility
|
|
114
110
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
115
111
|
exports.LotusGear = FarmingEquipment;
|
|
116
|
-
//# sourceMappingURL=farmingequipment.js.map
|
|
112
|
+
//# sourceMappingURL=farmingequipment.js.map
|
|
@@ -4,19 +4,19 @@ import { EliteItemDto } from './item';
|
|
|
4
4
|
import { PlayerOptions } from './player';
|
|
5
5
|
export declare function createFarmingPet(pet: FarmingPetType): FarmingPet;
|
|
6
6
|
export declare class FarmingPet {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
7
|
+
readonly pet: FarmingPetType;
|
|
8
|
+
readonly type: FarmingPets;
|
|
9
|
+
readonly info: FarmingPetInfo;
|
|
10
|
+
readonly rarity: Rarity;
|
|
11
|
+
readonly level: number;
|
|
12
|
+
readonly item: FarmingPetItemInfo | undefined;
|
|
13
|
+
fortune: number;
|
|
14
|
+
breakdown: Record<string, number>;
|
|
15
|
+
private options?;
|
|
16
|
+
constructor(pet: FarmingPetType, options?: PlayerOptions);
|
|
17
|
+
setOptions(options: PlayerOptions): void;
|
|
18
|
+
getFortune(): number;
|
|
19
|
+
static isValid(pet: FarmingPetType): boolean | '' | undefined;
|
|
20
|
+
static fromArray(items: EliteItemDto[], options?: PlayerOptions): FarmingPet[];
|
|
21
21
|
}
|
|
22
22
|
export declare function getPetLevel(pet: FarmingPetType, max?: number): number;
|
|
@@ -1,100 +1,101 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports,
|
|
1
|
+
'use strict';
|
|
2
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
3
3
|
exports.getPetLevel = exports.FarmingPet = exports.createFarmingPet = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
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
8
|
function createFarmingPet(pet) {
|
|
9
|
-
|
|
9
|
+
return new FarmingPet(pet);
|
|
10
10
|
}
|
|
11
11
|
exports.createFarmingPet = createFarmingPet;
|
|
12
12
|
class FarmingPet {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
13
|
+
constructor(pet, options) {
|
|
14
|
+
this.options = options;
|
|
15
|
+
this.pet = pet;
|
|
16
|
+
this.info = PETS_1.FARMING_PETS[pet.type];
|
|
17
|
+
if (!this.info) {
|
|
18
|
+
throw new Error(`Invalid farming pet type: ${pet.type}`);
|
|
19
|
+
}
|
|
20
|
+
this.type = pet.type;
|
|
21
|
+
this.rarity = (0, ITEMSTATS_1.getRarityFromLore)([pet.tier ?? '']) ?? REFORGES_1.Rarity.Common;
|
|
22
|
+
this.level = getPetLevel(pet);
|
|
23
|
+
this.item = pet.heldItem ? PETS_1.FARMING_PET_ITEMS[pet.heldItem] : undefined;
|
|
24
|
+
this.fortune = this.getFortune();
|
|
25
|
+
}
|
|
26
|
+
setOptions(options) {
|
|
27
|
+
this.options = options;
|
|
28
|
+
this.fortune = this.getFortune();
|
|
29
|
+
}
|
|
30
|
+
getFortune() {
|
|
31
|
+
let FORTUNE = 0;
|
|
32
|
+
const BREAKDOWN = {};
|
|
33
|
+
// Base stats
|
|
34
|
+
const STATS = this.info.stats?.[REFORGES_1.Stat.FarmingFortune];
|
|
35
|
+
if (STATS) {
|
|
36
|
+
FORTUNE += STATS;
|
|
37
|
+
BREAKDOWN['Base Stats'] = STATS;
|
|
38
|
+
}
|
|
39
|
+
// Per level/ability stats
|
|
40
|
+
const PER_LEVEL_STATS = this.info.perLevelStats?.[REFORGES_1.Stat.FarmingFortune];
|
|
41
|
+
if (PER_LEVEL_STATS) {
|
|
42
|
+
const AMOUNT = PER_LEVEL_STATS.multiplier * this.level;
|
|
43
|
+
FORTUNE += AMOUNT;
|
|
44
|
+
BREAKDOWN[PER_LEVEL_STATS.name] = AMOUNT;
|
|
45
|
+
}
|
|
46
|
+
// Per rarity fortune stats
|
|
47
|
+
const PER_RARITY_STATS = this.info.perRarityLevelStats?.[this.rarity]?.[REFORGES_1.Stat.FarmingFortune];
|
|
48
|
+
if (PER_RARITY_STATS) {
|
|
49
|
+
const AMOUNT = PER_RARITY_STATS.multiplier * this.level;
|
|
50
|
+
FORTUNE += AMOUNT;
|
|
51
|
+
BREAKDOWN[PER_RARITY_STATS.name] = AMOUNT;
|
|
52
|
+
}
|
|
53
|
+
// Mooshroom Cow Perk
|
|
54
|
+
if (this.type === PETS_1.FarmingPets.MooshroomCow && this.options?.strength) {
|
|
55
|
+
const STRENGTH_PER = 40 - this.level * 0.2;
|
|
56
|
+
const STRENGTH = this.options.strength;
|
|
57
|
+
const AMOUNT = Math.floor((STRENGTH / STRENGTH_PER) * 0.7);
|
|
58
|
+
FORTUNE += AMOUNT;
|
|
59
|
+
BREAKDOWN['Farming Strength'] = AMOUNT;
|
|
60
|
+
}
|
|
61
|
+
// Pet item stats
|
|
62
|
+
if (this.item) {
|
|
63
|
+
const stats = this.item.stats?.[REFORGES_1.Stat.FarmingFortune];
|
|
64
|
+
const perLevelStats = this.item.perLevelStats;
|
|
65
|
+
if (stats) {
|
|
66
|
+
FORTUNE += stats;
|
|
67
|
+
BREAKDOWN[this.item.name + ' Stats'] = stats;
|
|
68
|
+
}
|
|
69
|
+
if (perLevelStats && perLevelStats.skill === SKILLS_1.Skill.Garden) {
|
|
70
|
+
const AMOUNT =
|
|
71
|
+
(perLevelStats?.stats?.[REFORGES_1.Stat.FarmingFortune] ?? 0) * (this.options?.gardenLevel ?? 0);
|
|
72
|
+
FORTUNE += AMOUNT;
|
|
73
|
+
BREAKDOWN[this.item.name] = AMOUNT;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
this.breakdown = BREAKDOWN;
|
|
77
|
+
this.fortune = FORTUNE;
|
|
78
|
+
return FORTUNE;
|
|
79
|
+
}
|
|
80
|
+
static isValid(pet) {
|
|
81
|
+
return pet.type && pet.type in PETS_1.FARMING_PETS;
|
|
82
|
+
}
|
|
83
|
+
static fromArray(items, options) {
|
|
84
|
+
return items
|
|
85
|
+
.filter((item) => FarmingPet.isValid(item))
|
|
86
|
+
.map((item) => new FarmingPet(item, options))
|
|
87
|
+
.sort((a, b) => b.fortune - a.fortune);
|
|
88
|
+
}
|
|
88
89
|
}
|
|
89
90
|
exports.FarmingPet = FarmingPet;
|
|
90
91
|
function getPetLevel(pet, max = 100) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
92
|
+
const LEVELS = PETS_1.PET_LEVELS;
|
|
93
|
+
const XP = pet.exp ?? 0;
|
|
94
|
+
const LEVEL_INDEX = LEVELS.findIndex((level) => level > XP);
|
|
95
|
+
if (LEVEL_INDEX === -1 || LEVEL_INDEX >= max) {
|
|
96
|
+
return max;
|
|
97
|
+
}
|
|
98
|
+
return LEVEL_INDEX + 1;
|
|
98
99
|
}
|
|
99
100
|
exports.getPetLevel = getPetLevel;
|
|
100
|
-
//# sourceMappingURL=farmingpet.js.map
|
|
101
|
+
//# sourceMappingURL=farmingpet.js.map
|
|
@@ -4,38 +4,38 @@ import { FarmingToolInfo } from '../constants/tools';
|
|
|
4
4
|
import { EliteItemDto } from './item';
|
|
5
5
|
import { PlayerOptions } from './player';
|
|
6
6
|
export declare class FarmingTool {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
7
|
+
item: EliteItemDto;
|
|
8
|
+
crop: Crop;
|
|
9
|
+
tool: FarmingToolInfo;
|
|
10
|
+
itemname: string;
|
|
11
|
+
private colorPrefix;
|
|
12
|
+
get name(): string;
|
|
13
|
+
rarity: Rarity;
|
|
14
|
+
counter: number | undefined;
|
|
15
|
+
cultivating: number;
|
|
16
|
+
reforge: Reforge | undefined;
|
|
17
|
+
reforgeStats: ReforgeTier | undefined;
|
|
18
|
+
logCounter: number;
|
|
19
|
+
collAnalysis: number;
|
|
20
|
+
farmingForDummies: number;
|
|
21
|
+
recombobulated: boolean;
|
|
22
|
+
fortune: number;
|
|
23
|
+
fortuneBreakdown: Record<string, number>;
|
|
24
|
+
private options?;
|
|
25
|
+
constructor(item: EliteItemDto, options?: PlayerOptions);
|
|
26
|
+
setOptions(options: PlayerOptions): void;
|
|
27
|
+
rebuildTool(item: EliteItemDto, options?: PlayerOptions): void;
|
|
28
|
+
private setReforge;
|
|
29
|
+
changeReforgeTo(reforgeId: string): void;
|
|
30
|
+
changeFarmedCropsTo(crops: number): void;
|
|
31
|
+
getFortune(): number;
|
|
32
|
+
private getCounter;
|
|
33
|
+
private getCultivating;
|
|
34
|
+
getCultivatingLevel(): number;
|
|
35
|
+
get farmed(): number;
|
|
36
|
+
isUsed(): boolean;
|
|
37
|
+
isMissingDedication(): boolean | 0 | null | undefined;
|
|
38
|
+
private getFarmingAbilityFortune;
|
|
39
|
+
static isValid(item: EliteItemDto | FarmingTool): boolean;
|
|
40
|
+
static fromArray(items: EliteItemDto[], options?: PlayerOptions): FarmingTool[];
|
|
41
41
|
}
|