farming-weight 0.2.13 → 0.3.1

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 (88) hide show
  1. package/dist/classes/farmingaccessory.d.ts +15 -0
  2. package/dist/classes/farmingaccessory.js +42 -0
  3. package/dist/classes/farmingaccessory.js.map +1 -0
  4. package/dist/classes/farmingarmor.d.ts +6 -5
  5. package/dist/classes/farmingarmor.js +38 -36
  6. package/dist/classes/farmingarmor.js.map +1 -1
  7. package/dist/classes/farmingpet.d.ts +18 -3
  8. package/dist/classes/farmingpet.js +75 -9
  9. package/dist/classes/farmingpet.js.map +1 -1
  10. package/dist/classes/farmingtool.d.ts +13 -9
  11. package/dist/classes/farmingtool.js +51 -35
  12. package/dist/classes/farmingtool.js.map +1 -1
  13. package/dist/classes/item.d.ts +1 -1
  14. package/dist/classes/item.js +1 -2
  15. package/dist/classes/lotusgear.d.ts +5 -5
  16. package/dist/classes/lotusgear.js +19 -21
  17. package/dist/classes/lotusgear.js.map +1 -1
  18. package/dist/classes/player.d.ts +33 -9
  19. package/dist/classes/player.js +140 -28
  20. package/dist/classes/player.js.map +1 -1
  21. package/dist/classes/weightcalc.d.ts +1 -1
  22. package/dist/classes/weightcalc.js +27 -31
  23. package/dist/classes/weightcalc.js.map +1 -1
  24. package/dist/constants/accessories.d.ts +14 -0
  25. package/dist/constants/accessories.js +36 -0
  26. package/dist/constants/accessories.js.map +1 -0
  27. package/dist/constants/armor.js +125 -128
  28. package/dist/constants/armor.js.map +1 -1
  29. package/dist/constants/crops.d.ts +2 -0
  30. package/dist/constants/crops.js +20 -7
  31. package/dist/constants/crops.js.map +1 -1
  32. package/dist/constants/enchants.js +67 -70
  33. package/dist/constants/enchants.js.map +1 -1
  34. package/dist/constants/lotus.js +26 -29
  35. package/dist/constants/lotus.js.map +1 -1
  36. package/dist/constants/personalbests.d.ts +1 -1
  37. package/dist/constants/personalbests.js +17 -21
  38. package/dist/constants/personalbests.js.map +1 -1
  39. package/dist/constants/pests.d.ts +2 -2
  40. package/dist/constants/pests.js +10 -15
  41. package/dist/constants/pests.js.map +1 -1
  42. package/dist/constants/pets.d.ts +21 -3
  43. package/dist/constants/pets.js +37 -23
  44. package/dist/constants/pets.js.map +1 -1
  45. package/dist/constants/reforges.js +8 -11
  46. package/dist/constants/reforges.js.map +1 -1
  47. package/dist/constants/skills.js +2 -5
  48. package/dist/constants/skills.js.map +1 -1
  49. package/dist/constants/specialcrops.js +16 -19
  50. package/dist/constants/specialcrops.js.map +1 -1
  51. package/dist/constants/specific.d.ts +3 -0
  52. package/dist/constants/specific.js +5 -5
  53. package/dist/constants/specific.js.map +1 -1
  54. package/dist/constants/tools.js +121 -124
  55. package/dist/constants/tools.js.map +1 -1
  56. package/dist/constants/weight.js +15 -18
  57. package/dist/constants/weight.js.map +1 -1
  58. package/dist/crops/melon.d.ts +1 -1
  59. package/dist/crops/melon.js +3 -7
  60. package/dist/crops/melon.js.map +1 -1
  61. package/dist/crops/pumpkin.d.ts +1 -1
  62. package/dist/crops/pumpkin.js +3 -7
  63. package/dist/crops/pumpkin.js.map +1 -1
  64. package/dist/crops/special.d.ts +1 -1
  65. package/dist/crops/special.js +6 -10
  66. package/dist/crops/special.js.map +1 -1
  67. package/dist/index.d.ts +3 -0
  68. package/dist/index.js +25 -38
  69. package/dist/index.js.map +1 -1
  70. package/dist/util/itemstats.d.ts +3 -3
  71. package/dist/util/itemstats.js +48 -53
  72. package/dist/util/itemstats.js.map +1 -1
  73. package/dist/util/jacob.d.ts +3 -3
  74. package/dist/util/jacob.js +10 -11
  75. package/dist/util/jacob.js.map +1 -1
  76. package/dist/util/lore.d.ts +1 -1
  77. package/dist/util/lore.js +1 -5
  78. package/dist/util/lore.js.map +1 -1
  79. package/dist/util/names.d.ts +5 -4
  80. package/dist/util/names.js +102 -78
  81. package/dist/util/names.js.map +1 -1
  82. package/dist/util/ratecalc.d.ts +7 -7
  83. package/dist/util/ratecalc.js +65 -75
  84. package/dist/util/ratecalc.js.map +1 -1
  85. package/dist/util/skyblocktime.d.ts +1 -0
  86. package/dist/util/skyblocktime.js +8 -5
  87. package/dist/util/skyblocktime.js.map +1 -1
  88. package/package.json +1 -1
@@ -0,0 +1,15 @@
1
+ import { FarmingAccessoryInfo } from '../constants/accessories';
2
+ import { Rarity } from '../constants/reforges';
3
+ import { EliteItemDto } from './item';
4
+ export declare class FarmingAccessory {
5
+ readonly item: EliteItemDto;
6
+ readonly info: FarmingAccessoryInfo;
7
+ readonly rarity: Rarity;
8
+ readonly recombobulated: boolean;
9
+ fortune: number;
10
+ fortuneBreakdown: Record<string, number>;
11
+ constructor(item: EliteItemDto);
12
+ private sumFortune;
13
+ static isValid(item: EliteItemDto): boolean;
14
+ static fromArray(items: EliteItemDto[]): FarmingAccessory[];
15
+ }
@@ -0,0 +1,42 @@
1
+ import { FARMING_ACCESSORIES_INFO } from '../constants/accessories';
2
+ import { Stat } from '../constants/reforges';
3
+ import { getRarityFromLore } from '../util/itemstats';
4
+ export class FarmingAccessory {
5
+ item;
6
+ info;
7
+ constructor(item) {
8
+ this.item = item;
9
+ const info = FARMING_ACCESSORIES_INFO[item.skyblockId];
10
+ if (!info) {
11
+ throw new Error(`Unknown lotus gear: ${item.name} (${item.skyblockId})`);
12
+ }
13
+ this.info = info;
14
+ if (item.lore) {
15
+ this.rarity = getRarityFromLore(item.lore);
16
+ }
17
+ this.recombobulated = this.item.attributes?.rarity_upgrades === '1';
18
+ this.sumFortune();
19
+ }
20
+ sumFortune() {
21
+ this.fortuneBreakdown = {};
22
+ let sum = 0;
23
+ // Base fortune
24
+ const base = this.info.stats?.[Stat.FarmingFortune] ?? 0;
25
+ if (base > 0) {
26
+ this.fortuneBreakdown['Base Stats'] = base;
27
+ sum += base;
28
+ }
29
+ this.fortune = sum;
30
+ return sum;
31
+ }
32
+ static isValid(item) {
33
+ return FARMING_ACCESSORIES_INFO[item.skyblockId] !== undefined;
34
+ }
35
+ static fromArray(items) {
36
+ return items
37
+ .filter((item) => FarmingAccessory.isValid(item))
38
+ .map((item) => new FarmingAccessory(item))
39
+ .sort((a, b) => b.fortune - a.fortune);
40
+ }
41
+ }
42
+ //# sourceMappingURL=farmingaccessory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"farmingaccessory.js","sourceRoot":"","sources":["../../src/classes/farmingaccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAwB,MAAM,0BAA0B,CAAC;AAC1F,OAAO,EAAU,IAAI,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtD,MAAM,OAAO,gBAAgB;IACZ,IAAI,CAAe;IACnB,IAAI,CAAuB;IAQ3C,YAAY,IAAkB;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,MAAM,IAAI,GAAG,wBAAwB,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,iBAAiB,CAAC,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,IAAI,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,wBAAwB,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"}
@@ -2,7 +2,7 @@ import { ArmorSetBonus, FarmingArmorInfo, GearSlot } from '../constants/armor';
2
2
  import { Crop } from '../constants/crops';
3
3
  import { Rarity, Reforge, ReforgeTier } from '../constants/reforges';
4
4
  import { SpecialCrop } from '../constants/specialcrops';
5
- import { Item } from './item';
5
+ import { EliteItemDto } from './item';
6
6
  import { PlayerOptions } from './player';
7
7
  export interface ActiveArmorSetBonus {
8
8
  count: number;
@@ -15,6 +15,7 @@ export declare class ArmorSet {
15
15
  readonly chestplate?: FarmingArmor;
16
16
  readonly leggings?: FarmingArmor;
17
17
  readonly boots?: FarmingArmor;
18
+ fortune: number;
18
19
  setBonuses: ActiveArmorSetBonus[];
19
20
  constructor(armor: FarmingArmor[]);
20
21
  private recalculateFamilies;
@@ -27,7 +28,7 @@ export declare class ArmorSet {
27
28
  get armor(): (FarmingArmor | null)[];
28
29
  }
29
30
  export declare class FarmingArmor {
30
- readonly item: Item;
31
+ readonly item: EliteItemDto;
31
32
  readonly armor: FarmingArmorInfo;
32
33
  get slot(): GearSlot;
33
34
  readonly rarity: Rarity;
@@ -37,8 +38,8 @@ export declare class FarmingArmor {
37
38
  fortune: number;
38
39
  fortuneBreakdown: Record<string, number>;
39
40
  private options?;
40
- constructor(item: Item, options?: PlayerOptions);
41
+ constructor(item: EliteItemDto, options?: PlayerOptions);
41
42
  private sumFortune;
42
- static isValid(item: Item): boolean;
43
+ static isValid(item: EliteItemDto): boolean;
44
+ static fromArray(items: EliteItemDto[], options?: PlayerOptions): FarmingArmor[];
43
45
  }
44
- export declare function IsValidFarmingArmor(item: Item): boolean;
@@ -1,19 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IsValidFarmingArmor = 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 {
1
+ import { ARMOR_INFO, ARMOR_SET_BONUS, GearSlot } from '../constants/armor';
2
+ import { FARMING_ARMOR_ENCHANTS } from '../constants/enchants';
3
+ import { REFORGES, Stat } from '../constants/reforges';
4
+ import { Skill } from '../constants/skills';
5
+ import { MATCHING_SPECIAL_CROP } from '../constants/specialcrops';
6
+ import { calculateAverageSpecialCrops } from '../crops/special';
7
+ import { getRarityFromLore } from '../util/itemstats';
8
+ export class ArmorSet {
12
9
  constructor(armor) {
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);
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);
17
14
  this.recalculateFamilies();
18
15
  }
19
16
  recalculateFamilies() {
@@ -28,7 +25,7 @@ class ArmorSet {
28
25
  for (const [family, count] of families.entries()) {
29
26
  if (count < 2)
30
27
  continue;
31
- const bonus = armor_1.ARMOR_SET_BONUS[family];
28
+ const bonus = ARMOR_SET_BONUS[family];
32
29
  if (!bonus)
33
30
  continue;
34
31
  this.setBonuses.push({
@@ -38,8 +35,10 @@ class ArmorSet {
38
35
  special: bonus.special,
39
36
  });
40
37
  }
38
+ this.getFortuneBreakdown();
41
39
  }
42
40
  getFortuneBreakdown() {
41
+ let sum = 0;
43
42
  const breakdown = {};
44
43
  for (const piece of this.armor) {
45
44
  if (!piece)
@@ -47,20 +46,23 @@ class ArmorSet {
47
46
  const fortune = piece.fortune;
48
47
  if (fortune > 0) {
49
48
  breakdown[piece.item.name ?? ''] = fortune;
49
+ sum += fortune;
50
50
  }
51
51
  }
52
52
  for (const { bonus, count } of this.setBonuses) {
53
53
  if (count < 2 || count > 4)
54
54
  continue;
55
- const fortune = bonus.stats?.[count]?.[reforges_1.Stat.FarmingFortune] ?? 0;
55
+ const fortune = bonus.stats?.[count]?.[Stat.FarmingFortune] ?? 0;
56
56
  if (fortune > 0) {
57
57
  breakdown[bonus.name] = fortune;
58
+ sum += fortune;
58
59
  }
59
60
  }
61
+ this.fortune = sum;
60
62
  return breakdown;
61
63
  }
62
64
  specialDropsCalc(blocksBroken, crop) {
63
- const special = specialcrops_1.MATCHING_SPECIAL_CROP[crop];
65
+ const special = MATCHING_SPECIAL_CROP[crop];
64
66
  const applicableBonuses = this.setBonuses.filter((b) => b.special?.includes(special));
65
67
  if (applicableBonuses.length === 0)
66
68
  return null;
@@ -72,29 +74,28 @@ class ArmorSet {
72
74
  for (const bonus of applicableBonuses) {
73
75
  count += bonus.count;
74
76
  }
75
- return (0, special_1.CalculateAverageSpecialCrops)(blocksBroken, crop, count);
77
+ return calculateAverageSpecialCrops(blocksBroken, crop, count);
76
78
  }
77
79
  get armor() {
78
80
  return [this.helmet ?? null, this.chestplate ?? null, this.leggings ?? null, this.boots ?? null];
79
81
  }
80
82
  }
81
- exports.ArmorSet = ArmorSet;
82
- class FarmingArmor {
83
+ export class FarmingArmor {
83
84
  get slot() {
84
85
  return this.armor.slot;
85
86
  }
86
87
  constructor(item, options) {
87
88
  this.options = options;
88
89
  this.item = item;
89
- const armor = armor_1.ARMOR_INFO[item.skyblockId];
90
+ const armor = ARMOR_INFO[item.skyblockId];
90
91
  if (!armor) {
91
92
  throw new Error(`Unknown farming armor: ${item.name} (${item.skyblockId})`);
92
93
  }
93
94
  this.armor = armor;
94
95
  if (item.lore) {
95
- this.rarity = (0, itemstats_1.GetRarityFromLore)(item.lore);
96
+ this.rarity = getRarityFromLore(item.lore);
96
97
  }
97
- this.reforge = reforges_1.REFORGES[item.attributes?.modifier ?? ''] ?? undefined;
98
+ this.reforge = REFORGES[item.attributes?.modifier ?? ''] ?? undefined;
98
99
  this.reforgeStats = this.reforge?.tiers?.[this.rarity];
99
100
  this.recombobulated = this.item.attributes?.rarity_upgrades === '1';
100
101
  this.sumFortune();
@@ -103,21 +104,21 @@ class FarmingArmor {
103
104
  this.fortuneBreakdown = {};
104
105
  let sum = 0;
105
106
  // Base fortune
106
- const base = this.armor.stats?.[reforges_1.Stat.FarmingFortune] ?? 0;
107
+ const base = this.armor.stats?.[Stat.FarmingFortune] ?? 0;
107
108
  if (base > 0) {
108
109
  this.fortuneBreakdown['Base Stats'] = base;
109
110
  sum += base;
110
111
  }
111
112
  // Per farming level stats like Rancher's Boots
112
- if (this.armor.perLevelStats?.skill === skills_1.Skill.Farming && this.options?.farmingLevel) {
113
- const perLevel = this.armor.perLevelStats?.stats[reforges_1.Stat.FarmingFortune] ?? 0;
113
+ if (this.armor.perLevelStats?.skill === Skill.Farming && this.options?.farmingLevel) {
114
+ const perLevel = this.armor.perLevelStats?.stats[Stat.FarmingFortune] ?? 0;
114
115
  if (perLevel > 0) {
115
116
  this.fortuneBreakdown['Farming Level'] = perLevel * this.options.farmingLevel;
116
117
  sum += perLevel * this.options.farmingLevel;
117
118
  }
118
119
  }
119
120
  // Reforge stats
120
- const reforge = this.reforgeStats?.stats?.[reforges_1.Stat.FarmingFortune] ?? 0;
121
+ const reforge = this.reforgeStats?.stats?.[Stat.FarmingFortune] ?? 0;
121
122
  if (reforge > 0) {
122
123
  this.fortuneBreakdown[this.reforge?.name ?? 'Reforge'] = reforge;
123
124
  sum += reforge;
@@ -127,10 +128,10 @@ class FarmingArmor {
127
128
  for (const [enchant, level] of enchantments) {
128
129
  if (!level)
129
130
  continue;
130
- const enchantment = enchants_1.FARMING_ARMOR_ENCHANTS[enchant];
131
+ const enchantment = FARMING_ARMOR_ENCHANTS[enchant];
131
132
  if (!enchantment || !level)
132
133
  continue;
133
- const fortune = enchantment.levels?.[level]?.[reforges_1.Stat.FarmingFortune] ?? 0;
134
+ const fortune = enchantment.levels?.[level]?.[Stat.FarmingFortune] ?? 0;
134
135
  if (fortune > 0) {
135
136
  this.fortuneBreakdown[enchantment.name] = fortune;
136
137
  sum += fortune;
@@ -140,12 +141,13 @@ class FarmingArmor {
140
141
  return sum;
141
142
  }
142
143
  static isValid(item) {
143
- return IsValidFarmingArmor(item);
144
+ return ARMOR_INFO[item.skyblockId] !== undefined;
145
+ }
146
+ static fromArray(items, options) {
147
+ return items
148
+ .filter((item) => FarmingArmor.isValid(item))
149
+ .map((item) => new FarmingArmor(item, options))
150
+ .sort((a, b) => b.fortune - a.fortune);
144
151
  }
145
152
  }
146
- exports.FarmingArmor = FarmingArmor;
147
- function IsValidFarmingArmor(item) {
148
- return armor_1.ARMOR_INFO[item.skyblockId] !== undefined;
149
- }
150
- exports.IsValidFarmingArmor = IsValidFarmingArmor;
151
153
  //# sourceMappingURL=farmingarmor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"farmingarmor.js","sourceRoot":"","sources":["../../src/classes/farmingarmor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"farmingarmor.js","sourceRoot":"","sources":["../../src/classes/farmingarmor.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,21 @@
1
- import { FarmingPetType } from '../constants/pets';
2
- export declare function CreateFarmingPet(pet: FarmingPetType): FarmingPet;
1
+ import { FarmingPetInfo, FarmingPetItemInfo, FarmingPetType, FarmingPets } from '../constants/pets';
2
+ import { Rarity } from '../constants/reforges';
3
+ import { EliteItemDto } from './item';
4
+ import { PlayerOptions } from './player';
5
+ export declare function createFarmingPet(pet: FarmingPetType): FarmingPet;
3
6
  export declare class FarmingPet {
4
7
  readonly pet: FarmingPetType;
5
- constructor(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 readonly options?;
16
+ constructor(pet: FarmingPetType, options?: PlayerOptions);
17
+ getFortune(): number;
18
+ static isValid(pet: FarmingPetType): boolean | "" | undefined;
19
+ static fromArray(items: EliteItemDto[], options?: PlayerOptions): FarmingPet[];
6
20
  }
21
+ export declare function getPetLevel(pet: FarmingPetType, max?: number): number;
@@ -1,15 +1,81 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FarmingPet = exports.CreateFarmingPet = void 0;
4
- function CreateFarmingPet(pet) {
1
+ import { FARMING_PETS, FARMING_PET_ITEMS, FarmingPets, PET_LEVELS, } from '../constants/pets';
2
+ import { Rarity, Stat } from '../constants/reforges';
3
+ import { Skill } from '../constants/skills';
4
+ export function createFarmingPet(pet) {
5
5
  return new FarmingPet(pet);
6
6
  }
7
- exports.CreateFarmingPet = CreateFarmingPet;
8
- class FarmingPet {
9
- pet;
10
- constructor(pet) {
7
+ export class FarmingPet {
8
+ constructor(pet, options) {
9
+ this.options = options;
11
10
  this.pet = pet;
11
+ this.info = FARMING_PETS[pet.type];
12
+ if (!this.info) {
13
+ throw new Error(`Invalid farming pet type: ${pet.type}`);
14
+ }
15
+ this.type = pet.type;
16
+ this.rarity = pet.tier ?? Rarity.Common;
17
+ this.level = getPetLevel(pet);
18
+ this.item = pet.heldItem ? FARMING_PET_ITEMS[pet.heldItem] : undefined;
19
+ this.fortune = this.getFortune();
12
20
  }
21
+ getFortune() {
22
+ let fortune = 0;
23
+ const breakdown = {};
24
+ // Base stats
25
+ const stats = this.info.stats?.[Stat.FarmingFortune];
26
+ if (stats) {
27
+ fortune += stats;
28
+ breakdown['Base Stats'] = stats;
29
+ }
30
+ // Per level/ability stats
31
+ const perLevelStats = this.info.perLevelStats?.[Stat.FarmingFortune];
32
+ if (perLevelStats) {
33
+ const amount = perLevelStats.multiplier * this.level;
34
+ fortune += amount;
35
+ breakdown[perLevelStats.name] = amount;
36
+ }
37
+ // Mooshroom Cow Perk
38
+ if (this.type === FarmingPets.MooshroomCow && this.options?.strength) {
39
+ const strengthPer = 40 - this.level * 0.2;
40
+ const strength = this.options.strength;
41
+ const amount = Math.floor((strength / strengthPer) * 0.7);
42
+ fortune += amount;
43
+ breakdown['Farming Strength'] = amount;
44
+ }
45
+ // Pet item stats
46
+ if (this.item) {
47
+ const stats = this.item.stats?.[Stat.FarmingFortune];
48
+ const perLevelStats = this.item.perLevelStats;
49
+ if (stats) {
50
+ fortune += stats;
51
+ breakdown[this.item.name] = stats;
52
+ }
53
+ else if (perLevelStats && perLevelStats.skill === Skill.Garden) {
54
+ const amount = (perLevelStats?.stats?.[Stat.FarmingFortune] ?? 0) * (this.options?.gardenLevel ?? 0);
55
+ fortune += amount;
56
+ breakdown[this.item.name] = amount;
57
+ }
58
+ }
59
+ this.breakdown = breakdown;
60
+ return fortune;
61
+ }
62
+ static isValid(pet) {
63
+ return pet.type && pet.type in FARMING_PETS;
64
+ }
65
+ static fromArray(items, options) {
66
+ return items
67
+ .filter((item) => FarmingPet.isValid(item))
68
+ .map((item) => new FarmingPet(item, options))
69
+ .sort((a, b) => b.fortune - a.fortune);
70
+ }
71
+ }
72
+ export function getPetLevel(pet, max = 100) {
73
+ const levels = PET_LEVELS;
74
+ const xp = pet.exp ?? 0;
75
+ const levelIndex = levels.findIndex((level) => level > xp);
76
+ if (levelIndex === -1 || levelIndex >= max) {
77
+ return max;
78
+ }
79
+ return levelIndex + 1;
13
80
  }
14
- exports.FarmingPet = FarmingPet;
15
81
  //# sourceMappingURL=farmingpet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"farmingpet.js","sourceRoot":"","sources":["../../src/classes/farmingpet.ts"],"names":[],"mappings":";;;AAEA,SAAgB,gBAAgB,CAAC,GAAmB;IACnD,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAFD,4CAEC;AAED,MAAa,UAAU;IACN,GAAG,CAAiB;IAEpC,YAAY,GAAmB;QAC9B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,CAAC;CACD;AAND,gCAMC"}
1
+ {"version":3,"file":"farmingpet.js","sourceRoot":"","sources":["../../src/classes/farmingpet.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,15 @@
1
1
  import { Crop } from '../constants/crops';
2
2
  import { Rarity, Reforge, ReforgeTier } from '../constants/reforges';
3
3
  import { FarmingToolInfo } from '../constants/tools';
4
- import { Item } from './item';
4
+ import { EliteItemDto } from './item';
5
5
  import { PlayerOptions } from './player';
6
6
  export declare class FarmingTool {
7
- item: Item;
7
+ item: EliteItemDto;
8
8
  crop: Crop;
9
9
  tool: FarmingToolInfo;
10
+ itemname: string;
11
+ private colorPrefix;
12
+ get name(): string;
10
13
  rarity: Rarity;
11
14
  counter: number | undefined;
12
15
  cultivating: number;
@@ -17,16 +20,17 @@ export declare class FarmingTool {
17
20
  fortune: number;
18
21
  fortuneBreakdown: Record<string, number>;
19
22
  private options?;
20
- constructor(item: Item, options?: PlayerOptions);
21
- rebuildTool(item: Item, options?: PlayerOptions): void;
22
- setReforge(reforgeId: string): void;
23
- private sumFortune;
23
+ constructor(item: EliteItemDto, options?: PlayerOptions);
24
+ rebuildTool(item: EliteItemDto, options?: PlayerOptions): void;
25
+ private setReforge;
26
+ changeReforgeTo(reforgeId: string): void;
27
+ getFortune(): number;
24
28
  private getCounter;
25
29
  private getCultivating;
26
30
  getCultivatingLevel(): number;
27
31
  get farmed(): number;
28
- get isMissingDedication(): boolean | 0 | null | undefined;
32
+ isMissingDedication(): boolean | 0 | null | undefined;
29
33
  private getFarmingAbilityFortune;
30
- static isValid(item: Item): boolean;
34
+ static isValid(item: EliteItemDto | FarmingTool): boolean;
35
+ static fromArray(items: EliteItemDto[], options?: PlayerOptions): FarmingTool[];
31
36
  }
32
- export declare function IsValidFarmingTool(item: Item): boolean;
@@ -1,56 +1,69 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IsValidFarmingTool = 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 {
1
+ import { FARMING_ENCHANTS, TURBO_ENCHANTS, TURBO_ENCHANT_FORTUNE } from '../constants/enchants';
2
+ import { REFORGES, Stat } from '../constants/reforges';
3
+ import { FARMING_TOOLS, FarmingToolType } from '../constants/tools';
4
+ import { getRarityFromLore, previousRarity } from '../util/itemstats';
5
+ import { extractNumberFromLine } from '../util/lore';
6
+ export class FarmingTool {
7
+ get name() {
8
+ return this.colorPrefix + (this.reforge?.name ?? '') + ' ' + this.itemname;
9
+ }
10
10
  constructor(item, options) {
11
11
  this.rebuildTool(item, options);
12
12
  }
13
13
  rebuildTool(item, options) {
14
14
  this.options = options;
15
15
  this.item = item;
16
- const tool = tools_1.FARMING_TOOLS[item.skyblockId];
16
+ const tool = FARMING_TOOLS[item.skyblockId];
17
17
  if (!tool) {
18
18
  throw new Error(`Unknown farming tool: ${item.name} (${item.skyblockId})`);
19
19
  }
20
20
  this.tool = tool;
21
21
  this.crop = tool.crop;
22
22
  if (item.lore) {
23
- this.rarity = (0, itemstats_1.GetRarityFromLore)(item.lore);
23
+ this.rarity = getRarityFromLore(item.lore);
24
24
  }
25
25
  this.counter = this.getCounter();
26
26
  this.cultivating = this.getCultivating() ?? 0;
27
27
  this.setReforge(item.attributes?.modifier ?? '');
28
28
  this.farmingForDummies = +(this.item.attributes?.farming_for_dummies_count ?? 0);
29
29
  this.recombobulated = this.item.attributes?.rarity_upgrades === '1';
30
- this.fortune = this.sumFortune();
30
+ this.fortune = this.getFortune();
31
+ if (this.reforge?.name && item.name) {
32
+ const [prefix, name] = item.name.split(this.reforge.name);
33
+ this.colorPrefix = prefix ?? '';
34
+ this.itemname = name?.trim() ?? '';
35
+ }
36
+ else {
37
+ this.colorPrefix = '';
38
+ this.itemname = item.name ?? '';
39
+ }
31
40
  }
32
41
  setReforge(reforgeId) {
33
- this.reforge = reforges_1.REFORGES[reforgeId] ?? undefined;
42
+ this.reforge = REFORGES[reforgeId] ?? undefined;
34
43
  this.reforgeStats = this.reforge?.tiers?.[this.rarity];
35
44
  }
36
- sumFortune() {
45
+ changeReforgeTo(reforgeId) {
46
+ this.setReforge(reforgeId);
47
+ this.fortune = this.getFortune();
48
+ }
49
+ getFortune() {
37
50
  this.fortuneBreakdown = {};
38
51
  let sum = 0;
39
52
  // Base fortune
40
- const base = this.tool.baseStats?.[reforges_1.Stat.FarmingFortune] ?? 0;
53
+ const base = this.tool.baseStats?.[Stat.FarmingFortune] ?? 0;
41
54
  if (base > 0) {
42
55
  this.fortuneBreakdown['Tool Bonus'] = base;
43
56
  sum += base;
44
57
  }
45
58
  // Tool rarity stats
46
- const baseRarity = this.recombobulated ? (0, itemstats_1.PreviousRarity)(this.rarity) : this.rarity;
47
- const rarityStats = this.tool.stats?.[baseRarity]?.[reforges_1.Stat.FarmingFortune] ?? 0;
59
+ const baseRarity = this.recombobulated ? previousRarity(this.rarity) : this.rarity;
60
+ const rarityStats = this.tool.stats?.[baseRarity]?.[Stat.FarmingFortune] ?? 0;
48
61
  if (rarityStats > 0) {
49
62
  this.fortuneBreakdown['Tool Stats'] = rarityStats;
50
63
  sum += rarityStats;
51
64
  }
52
65
  // Reforge stats
53
- const reforge = this.reforgeStats?.stats?.[reforges_1.Stat.FarmingFortune] ?? 0;
66
+ const reforge = this.reforgeStats?.stats?.[Stat.FarmingFortune] ?? 0;
54
67
  if (reforge > 0) {
55
68
  this.fortuneBreakdown[this.reforge?.name ?? 'Reforge'] = reforge;
56
69
  sum += reforge;
@@ -61,7 +74,7 @@ class FarmingTool {
61
74
  sum += this.farmingForDummies;
62
75
  }
63
76
  // Collection analysis and digit bonuses
64
- if (this.tool.type === tools_1.FarmingToolType.MathematicalHoe) {
77
+ if (this.tool.type === FarmingToolType.MathematicalHoe) {
65
78
  const ability = this.getFarmingAbilityFortune(this);
66
79
  if (ability > 0) {
67
80
  this.fortuneBreakdown['Tool Ability'] = ability;
@@ -73,19 +86,19 @@ class FarmingTool {
73
86
  for (const [enchant, level] of enchantments) {
74
87
  if (!level)
75
88
  continue;
76
- if (enchant in enchants_1.TURBO_ENCHANTS) {
77
- const matchingCrop = enchants_1.TURBO_ENCHANTS[enchant];
89
+ if (enchant in TURBO_ENCHANTS) {
90
+ const matchingCrop = TURBO_ENCHANTS[enchant];
78
91
  if (!matchingCrop || matchingCrop !== this.crop)
79
92
  continue;
80
- const gain = enchants_1.TURBO_ENCHANT_FORTUNE * level;
93
+ const gain = TURBO_ENCHANT_FORTUNE * level;
81
94
  this.fortuneBreakdown['Turbo'] = gain;
82
95
  sum += gain;
83
96
  continue;
84
97
  }
85
- const enchantment = enchants_1.FARMING_ENCHANTS[enchant];
98
+ const enchantment = FARMING_ENCHANTS[enchant];
86
99
  if (!enchantment || !level)
87
100
  continue;
88
- const fortune = enchantment.levels?.[level]?.[reforges_1.Stat.FarmingFortune] ?? 0;
101
+ const fortune = enchantment.levels?.[level]?.[Stat.FarmingFortune] ?? 0;
89
102
  if (fortune > 0) {
90
103
  this.fortuneBreakdown[enchantment.name] = fortune;
91
104
  sum += fortune;
@@ -94,9 +107,9 @@ class FarmingTool {
94
107
  const milestone = this.options?.milestones?.[this.crop] ?? 0;
95
108
  if (milestone && 'dedication' in (this.item.enchantments ?? {})) {
96
109
  const level = this.item.enchantments?.dedication;
97
- const enchantment = enchants_1.FARMING_ENCHANTS.dedication;
110
+ const enchantment = FARMING_ENCHANTS.dedication;
98
111
  if (level && enchantment) {
99
- const multiplier = enchantment.multipliedLevels?.[level]?.[reforges_1.Stat.FarmingFortune] ?? 0;
112
+ const multiplier = enchantment.multipliedLevels?.[level]?.[Stat.FarmingFortune] ?? 0;
100
113
  if (multiplier > 0 && !isNaN(milestone)) {
101
114
  this.fortuneBreakdown[enchantment.name] = multiplier * milestone;
102
115
  sum += multiplier * milestone;
@@ -120,24 +133,27 @@ class FarmingTool {
120
133
  get farmed() {
121
134
  return this.counter ?? this.cultivating ?? 0;
122
135
  }
123
- get isMissingDedication() {
136
+ isMissingDedication() {
124
137
  return this.item?.enchantments?.dedication && (this.options?.milestones?.[this.crop] ?? 0) > 0;
125
138
  }
126
139
  getFarmingAbilityFortune(tool) {
127
140
  let fortune = 0;
128
- const regex = /§7You have §6\+(\d+)☘ Farming Fortune/g;
141
+ const regex = /§7You have §6\+(\d+)☘/g;
129
142
  for (const line of tool.item.lore ?? []) {
130
- fortune += (0, lore_1.ExtractNumberFromLine)(line, regex) ?? 0;
143
+ fortune += extractNumberFromLine(line, regex) ?? 0;
131
144
  }
132
145
  return fortune;
133
146
  }
134
147
  static isValid(item) {
135
- return IsValidFarmingTool(item);
148
+ if (item instanceof FarmingTool)
149
+ return true;
150
+ return FARMING_TOOLS[item.skyblockId] !== undefined;
151
+ }
152
+ static fromArray(items, options) {
153
+ return items
154
+ .filter((item) => FarmingTool.isValid(item))
155
+ .map((item) => new FarmingTool(item, options))
156
+ .sort((a, b) => b.fortune - a.fortune);
136
157
  }
137
158
  }
138
- exports.FarmingTool = FarmingTool;
139
- function IsValidFarmingTool(item) {
140
- return tools_1.FARMING_TOOLS[item.skyblockId] !== undefined;
141
- }
142
- exports.IsValidFarmingTool = IsValidFarmingTool;
143
159
  //# sourceMappingURL=farmingtool.js.map