farming-weight 0.10.8 → 0.11.0

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 (105) hide show
  1. package/dist/constants/attributes.d.ts +2 -1
  2. package/dist/constants/attributes.js +9 -3
  3. package/dist/constants/attributes.js.map +1 -1
  4. package/dist/constants/crops.d.ts +4 -1
  5. package/dist/constants/crops.js +62 -2
  6. package/dist/constants/crops.js.map +1 -1
  7. package/dist/constants/garden.js +18 -0
  8. package/dist/constants/garden.js.map +1 -1
  9. package/dist/constants/gems.d.ts +14 -1
  10. package/dist/constants/gems.js +561 -42
  11. package/dist/constants/gems.js.map +1 -1
  12. package/dist/constants/personalbests.js +4 -1
  13. package/dist/constants/personalbests.js.map +1 -1
  14. package/dist/constants/pests.d.ts +4 -1
  15. package/dist/constants/pests.js +119 -65
  16. package/dist/constants/pests.js.map +1 -1
  17. package/dist/constants/reforges.js +4 -0
  18. package/dist/constants/reforges.js.map +1 -1
  19. package/dist/constants/specialcrops.d.ts +15 -1
  20. package/dist/constants/specialcrops.js +17 -0
  21. package/dist/constants/specialcrops.js.map +1 -1
  22. package/dist/constants/specific.d.ts +1 -0
  23. package/dist/constants/specific.js +10 -0
  24. package/dist/constants/specific.js.map +1 -1
  25. package/dist/constants/stats.d.ts +5 -1
  26. package/dist/constants/stats.js +4 -0
  27. package/dist/constants/stats.js.map +1 -1
  28. package/dist/constants/upgrades.d.ts +43 -0
  29. package/dist/constants/upgrades.js.map +1 -1
  30. package/dist/constants/weight.js +5 -2
  31. package/dist/constants/weight.js.map +1 -1
  32. package/dist/fortune/farmingaccessory.d.ts +3 -1
  33. package/dist/fortune/farmingaccessory.js +17 -5
  34. package/dist/fortune/farmingaccessory.js.map +1 -1
  35. package/dist/fortune/farmingarmor.d.ts +14 -5
  36. package/dist/fortune/farmingarmor.js +123 -17
  37. package/dist/fortune/farmingarmor.js.map +1 -1
  38. package/dist/fortune/farmingequipment.d.ts +4 -2
  39. package/dist/fortune/farmingequipment.js +27 -5
  40. package/dist/fortune/farmingequipment.js.map +1 -1
  41. package/dist/fortune/farmingtool.d.ts +8 -4
  42. package/dist/fortune/farmingtool.js +53 -14
  43. package/dist/fortune/farmingtool.js.map +1 -1
  44. package/dist/fortune/upgradeable.d.ts +7 -2
  45. package/dist/fortune/upgradeablebase.d.ts +7 -3
  46. package/dist/fortune/upgradeablebase.js +20 -4
  47. package/dist/fortune/upgradeablebase.js.map +1 -1
  48. package/dist/items/accessories.d.ts +3 -14
  49. package/dist/items/accessories.js +9 -0
  50. package/dist/items/accessories.js.map +1 -1
  51. package/dist/items/armor.d.ts +3 -35
  52. package/dist/items/armor.js +139 -63
  53. package/dist/items/armor.js.map +1 -1
  54. package/dist/items/definitions.d.ts +44 -0
  55. package/dist/items/definitions.js +62 -0
  56. package/dist/items/definitions.js.map +1 -0
  57. package/dist/items/equipment.d.ts +2 -2
  58. package/dist/items/equipment.js +1 -1
  59. package/dist/items/equipment.js.map +1 -1
  60. package/dist/items/tools.d.ts +3 -14
  61. package/dist/items/tools.js +6 -36
  62. package/dist/items/tools.js.map +1 -1
  63. package/dist/player/player.d.ts +45 -4
  64. package/dist/player/player.js +720 -94
  65. package/dist/player/player.js.map +1 -1
  66. package/dist/player/playeroptions.d.ts +1 -0
  67. package/dist/player/playeroptions.js.map +1 -1
  68. package/dist/upgrades/enchantupgrades.d.ts +3 -2
  69. package/dist/upgrades/enchantupgrades.js +48 -8
  70. package/dist/upgrades/enchantupgrades.js.map +1 -1
  71. package/dist/upgrades/getfortune.d.ts +2 -1
  72. package/dist/upgrades/getfortune.js +7 -2
  73. package/dist/upgrades/getfortune.js.map +1 -1
  74. package/dist/upgrades/getsourceprogress.d.ts +2 -1
  75. package/dist/upgrades/getsourceprogress.js +53 -3
  76. package/dist/upgrades/getsourceprogress.js.map +1 -1
  77. package/dist/upgrades/sources/armorsetsources.js +57 -27
  78. package/dist/upgrades/sources/armorsetsources.js.map +1 -1
  79. package/dist/upgrades/sources/cropsources.js +39 -3
  80. package/dist/upgrades/sources/cropsources.js.map +1 -1
  81. package/dist/upgrades/sources/dynamicfortunesources.d.ts +10 -2
  82. package/dist/upgrades/sources/gearsources.js +54 -5
  83. package/dist/upgrades/sources/gearsources.js.map +1 -1
  84. package/dist/upgrades/sources/generalsources.js +177 -8
  85. package/dist/upgrades/sources/generalsources.js.map +1 -1
  86. package/dist/upgrades/sources/toolsources.js +108 -17
  87. package/dist/upgrades/sources/toolsources.js.map +1 -1
  88. package/dist/upgrades/upgrades.d.ts +5 -2
  89. package/dist/upgrades/upgrades.js +114 -24
  90. package/dist/upgrades/upgrades.js.map +1 -1
  91. package/dist/upgrades/upgradeutils.d.ts +6 -0
  92. package/dist/upgrades/upgradeutils.js +18 -0
  93. package/dist/upgrades/upgradeutils.js.map +1 -0
  94. package/dist/util/enchants.d.ts +3 -0
  95. package/dist/util/enchants.js +18 -12
  96. package/dist/util/enchants.js.map +1 -1
  97. package/dist/util/garden.d.ts +1 -0
  98. package/dist/util/garden.js +8 -2
  99. package/dist/util/garden.js.map +1 -1
  100. package/dist/util/gems.d.ts +2 -0
  101. package/dist/util/gems.js +29 -8
  102. package/dist/util/gems.js.map +1 -1
  103. package/dist/util/names.js +23 -0
  104. package/dist/util/names.js.map +1 -1
  105. package/package.json +3 -2
@@ -23,12 +23,22 @@ export const CROP_FORTUNE_SOURCES = [
23
23
  const progress = tool?.getProgress();
24
24
  return progress?.reduce((acc, p) => acc + p.fortune, 0) ?? 0;
25
25
  },
26
- progress: ({ player, crop }) => {
26
+ maxStat: ({ crop }, stat) => {
27
+ const fake = getFakeItem(CROP_INFO[crop].startingTool);
28
+ const progress = fake?.getProgress(true, [stat]) ?? [];
29
+ return progress.reduce((acc, p) => acc + (p.stats?.[stat]?.max ?? (stat === Stat.FarmingFortune ? p.maxFortune : 0)), 0);
30
+ },
31
+ currentStat: ({ player, crop }, stat) => {
32
+ const tool = player.getSelectedCropTool(crop);
33
+ const progress = tool?.getProgress(false, [stat]) ?? [];
34
+ return progress.reduce((acc, p) => acc + (p.stats?.[stat]?.current ?? (stat === Stat.FarmingFortune ? p.fortune : 0)), 0);
35
+ },
36
+ progress: ({ player, crop }, stats) => {
27
37
  const tool = player.getSelectedCropTool(crop);
28
38
  if (tool)
29
- return tool.getProgress();
39
+ return tool.getProgress(false, stats);
30
40
  const fake = getFakeItem(CROP_INFO[crop].startingTool);
31
- return fake?.getProgress(true) ?? [];
41
+ return fake?.getProgress(true, stats) ?? [];
32
42
  },
33
43
  info: ({ player, crop }) => {
34
44
  const tool = player.selectedTool?.crop === crop ? player.selectedTool : player.getSelectedCropTool(crop);
@@ -57,6 +67,9 @@ export const CROP_FORTUNE_SOURCES = [
57
67
  {
58
68
  title: 'Exportable Crop',
59
69
  increase: EXPORTABLE_CROP_FORTUNE,
70
+ stats: {
71
+ [Stat.FarmingFortune]: EXPORTABLE_CROP_FORTUNE,
72
+ },
60
73
  action: UpgradeAction.Unlock,
61
74
  category: UpgradeCategory.Misc,
62
75
  api: false,
@@ -82,10 +95,18 @@ export const CROP_FORTUNE_SOURCES = [
82
95
  {
83
96
  title: GARDEN_CROP_UPGRADES.name,
84
97
  increase: GARDEN_CROP_UPGRADES.fortunePerLevel,
98
+ stats: {
99
+ [Stat.FarmingFortune]: GARDEN_CROP_UPGRADES.fortunePerLevel,
100
+ },
85
101
  action: UpgradeAction.Upgrade,
86
102
  wiki: GARDEN_CROP_UPGRADES.wiki,
87
103
  category: UpgradeCategory.Misc,
88
104
  cost: GARDEN_CROP_UPGRADES.upgradeCosts?.[level + 1],
105
+ meta: {
106
+ type: 'crop_upgrade',
107
+ key: crop,
108
+ value: level + 1,
109
+ },
89
110
  },
90
111
  ];
91
112
  },
@@ -106,10 +127,18 @@ export const CROP_FORTUNE_SOURCES = [
106
127
  {
107
128
  title: COCOA_FORTUNE_UPGRADE.name,
108
129
  increase: COCOA_FORTUNE_UPGRADE.fortunePerLevel,
130
+ stats: {
131
+ [Stat.FarmingFortune]: COCOA_FORTUNE_UPGRADE.fortunePerLevel,
132
+ },
109
133
  action: UpgradeAction.Upgrade,
110
134
  repeatable: COCOA_FORTUNE_UPGRADE.maxLevel - level,
111
135
  wiki: COCOA_FORTUNE_UPGRADE.wiki,
112
136
  category: UpgradeCategory.Misc,
137
+ meta: {
138
+ type: 'setting',
139
+ key: 'cocoaFortuneUpgrade',
140
+ value: level + 1,
141
+ },
113
142
  },
114
143
  ];
115
144
  },
@@ -172,6 +201,9 @@ export const CROP_FORTUNE_SOURCES = [
172
201
  {
173
202
  title: 'Personal Best Fortune',
174
203
  increase: increase,
204
+ stats: {
205
+ [Stat.FarmingFortune]: increase,
206
+ },
175
207
  action: UpgradeAction.Unlock,
176
208
  wiki: 'https://wiki.hypixel.net/Anita#Personal_Bests',
177
209
  category: UpgradeCategory.Anita,
@@ -183,6 +215,10 @@ export const CROP_FORTUNE_SOURCES = [
183
215
  gold: 2,
184
216
  },
185
217
  },
218
+ meta: {
219
+ type: 'unlock',
220
+ id: 'personal_best',
221
+ },
186
222
  },
187
223
  ];
188
224
  },
@@ -1 +1 @@
1
- {"version":3,"file":"cropsources.js","sourceRoot":"","sources":["../../../src/upgrades/sources/cropsources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cropsources.js","sourceRoot":"","sources":["../../../src/upgrades/sources/cropsources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACpF,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGhE,MAAM,CAAC,MAAM,oBAAoB,GAG1B;IACN;QACC,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI;QAClB,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAC1B,OAAO,CACN,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI;gBAC3C,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,IAAI,CAC1D,CAAC;QACH,CAAC;QACD,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YACjB,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;YAC1E,OAAO,QAAQ,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,QAAQ,GAAG,IAAI,EAAE,WAAW,EAAE,CAAC;YACrC,OAAO,QAAQ,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE;YAC3B,MAAM,IAAI,GAAG,WAAW,CAAc,SAAS,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;YACpE,MAAM,QAAQ,GAAG,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACvD,OAAO,QAAQ,CAAC,MAAM,CACrB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7F,CAAC,CACD,CAAC;QACH,CAAC;QACD,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE;YACvC,MAAM,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,QAAQ,GAAG,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACxD,OAAO,QAAQ,CAAC,MAAM,CACrB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC9F,CAAC,CACD,CAAC;QACH,CAAC;QACD,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAEhD,MAAM,IAAI,GAAG,WAAW,CAAc,SAAS,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;YACpE,OAAO,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7C,CAAC;QACD,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAEzG,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE3E,OAAO;gBACN,IAAI,EAAE,IAAI,EAAE,IAAI;gBAChB,IAAI,EAAE,IAAI,EAAE,IAAI;gBAChB,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,kBAAkB,EAAE,EAAE,IAAI;gBAC7D,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,kBAAkB,EAAE,EAAE,IAAI;aACzD,CAAC;QACH,CAAC;KACD;IACD;QACC,IAAI,EAAE,iBAAiB;QACvB,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,GAAG,EAAE,CAAC,mCAAmC;QAC/C,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI;QACzD,GAAG,EAAE,GAAG,EAAE,CAAC,uBAAuB;QAClC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAC7B,OAAO,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,CAAC;QACD,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9B,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC;gBAAE,OAAO,EAAE,CAAC;YAEtD,OAAO;gBACN;oBACC,KAAK,EAAE,iBAAiB;oBACxB,QAAQ,EAAE,uBAAuB;oBACjC,KAAK,EAAE;wBACN,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,uBAAuB;qBAC9C;oBACD,MAAM,EAAE,aAAa,CAAC,MAAM;oBAC5B,QAAQ,EAAE,eAAe,CAAC,IAAI;oBAC9B,GAAG,EAAE,KAAK;oBACV,IAAI,EAAE,mCAAmC;oBACzC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,cAAc;iBACpC;aACD,CAAC;QACH,CAAC;KACD;IACD;QACC,IAAI,EAAE,oBAAoB,CAAC,IAAI;QAC/B,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI;QAClB,IAAI,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,IAAI;QACrC,GAAG,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,eAAe,GAAG,oBAAoB,CAAC,QAAQ;QAC/E,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAC7B,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,oBAAoB,CAAC,eAAe,CAAC;QAC1F,CAAC;QACD,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvD,IAAI,KAAK,IAAI,oBAAoB,CAAC,QAAQ;gBAAE,OAAO,EAAE,CAAC;YAEtD,OAAO;gBACN;oBACC,KAAK,EAAE,oBAAoB,CAAC,IAAI;oBAChC,QAAQ,EAAE,oBAAoB,CAAC,eAAe;oBAC9C,KAAK,EAAE;wBACN,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,oBAAoB,CAAC,eAAe;qBAC3D;oBACD,MAAM,EAAE,aAAa,CAAC,OAAO;oBAC7B,IAAI,EAAE,oBAAoB,CAAC,IAAI;oBAC/B,QAAQ,EAAE,eAAe,CAAC,IAAI;oBAC9B,IAAI,EAAE,oBAAoB,CAAC,YAAY,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;oBACpD,IAAI,EAAE;wBACL,IAAI,EAAE,cAAc;wBACpB,GAAG,EAAE,IAAI;wBACT,KAAK,EAAE,KAAK,GAAG,CAAC;qBAChB;iBACD;aACD,CAAC;QACH,CAAC;KACD;IACD;QACC,IAAI,EAAE,qBAAqB,CAAC,IAAI;QAChC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU;QAC9C,IAAI,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,IAAI;QACtC,GAAG,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,eAAe,GAAG,qBAAqB,CAAC,QAAQ;QACjF,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YACvB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC,GAAG,qBAAqB,CAAC,eAAe,CAAC;QAC1F,CAAC;QACD,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YACxB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC;YACtD,IAAI,KAAK,IAAI,qBAAqB,CAAC,QAAQ;gBAAE,OAAO,EAAE,CAAC;YAEvD,OAAO;gBACN;oBACC,KAAK,EAAE,qBAAqB,CAAC,IAAI;oBACjC,QAAQ,EAAE,qBAAqB,CAAC,eAAe;oBAC/C,KAAK,EAAE;wBACN,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,qBAAqB,CAAC,eAAe;qBAC5D;oBACD,MAAM,EAAE,aAAa,CAAC,OAAO;oBAC7B,UAAU,EAAE,qBAAqB,CAAC,QAAQ,GAAG,KAAK;oBAClD,IAAI,EAAE,qBAAqB,CAAC,IAAI;oBAChC,QAAQ,EAAE,eAAe,CAAC,IAAI;oBAC9B,IAAI,EAAE;wBACL,IAAI,EAAE,SAAS;wBACf,GAAG,EAAE,qBAAqB;wBAC1B,KAAK,EAAE,KAAK,GAAG,CAAC;qBAChB;iBACD;aACD,CAAC;QACH,CAAC;KACD;IACD;QACC,IAAI,EAAE,0BAA0B;QAChC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,wBAAwB,CAAC,iBAAiB,EAAE,MAAM,CAC3E,CAAC;YACF,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAEzB,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3D,OAAO,IAAI,CAAC;YACb,CAAC;YAED,OAAO,KAAK,CAAC;QACd,CAAC;QACD,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YACpB,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,wBAAwB,CAAC,iBAAiB,EAAE,MAAM,CAC3E,CAAC;YACF,OAAO,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,wBAAwB,CAAC,eAAe,EAAE,IAAI,CAAC;QAC7E,CAAC;QACD,GAAG,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QAC5F,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,wBAAwB,CAAC,iBAAiB,EAAE,MAAM,CAC3E,CAAC;YACF,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,CAAC;YAEvB,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9D,OAAO,CAAC,CAAC;YACV,CAAC;YAED,OAAO,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YACpB,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,wBAAwB,CAAC,iBAAiB,EAAE,MAAM,CAC3E,CAAC;YACF,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9E,OAAO;gBACN,IAAI,EAAE,OAAO,EAAE,IAAI;gBACnB,IAAI,EAAE,OAAO,EAAE,IAAI;gBACnB,QAAQ,EAAE,KAAK,IAAI,OAAO,EAAE,kBAAkB,EAAE,EAAE,IAAI;gBACtD,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,IAAI,IAAI,wBAAwB,CAAC,iBAAiB;aAC1F,CAAC;QACH,CAAC;KACD;IACD;QACC,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI;QAClB,IAAI,EAAE,GAAG,EAAE,CAAC,+CAA+C;QAC3D,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG;QACd,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB;gBAAE,OAAO,CAAC,CAAC;YAEpD,MAAM,YAAY,GACjB,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACvD,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5E,OAAO,8BAA8B,CAAC,IAAI,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9B,IAAI,MAAM,CAAC,OAAO,CAAC,qBAAqB;gBAAE,OAAO,EAAE,CAAC;YAEpD,MAAM,YAAY,GACjB,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACvD,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5E,MAAM,QAAQ,GAAG,8BAA8B,CAAC,IAAI,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC;YAEzE,OAAO;gBACN;oBACC,KAAK,EAAE,uBAAuB;oBAC9B,QAAQ,EAAE,QAAQ;oBAClB,KAAK,EAAE;wBACN,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,QAAQ;qBAC/B;oBACD,MAAM,EAAE,aAAa,CAAC,MAAM;oBAC5B,IAAI,EAAE,+CAA+C;oBACrD,QAAQ,EAAE,eAAe,CAAC,KAAK;oBAC/B,IAAI,EAAE;wBACL,KAAK,EAAE;4BACN,aAAa,EAAE,EAAE;yBACjB;wBACD,MAAM,EAAE;4BACP,IAAI,EAAE,CAAC;yBACP;qBACD;oBACD,IAAI,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,EAAE,EAAE,eAAe;qBACnB;iBACD;aACD,CAAC;QACH,CAAC;KACD;CACD,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { Crop } from '../../constants/crops.js';
2
+ import type { Stat } from '../../constants/stats.js';
2
3
  import type { FortuneSourceProgress, FortuneUpgrade, UpgradeInfo } from '../../constants/upgrades.js';
3
4
  import type { EliteItemDto } from '../../fortune/item.js';
4
5
  import type { UpgradeableInfo } from '../../fortune/upgradeable.js';
@@ -14,16 +15,23 @@ export interface DynamicFortuneSource<T> {
14
15
  reason?: string;
15
16
  fortune?: number;
16
17
  };
18
+ activeStat?: (source: T, stat: Stat) => {
19
+ active: boolean;
20
+ reason?: string;
21
+ value?: number;
22
+ };
17
23
  max: (source: T) => number;
18
24
  current: (source: T) => number;
19
- progress?: (source: T) => FortuneSourceProgress[];
25
+ maxStat?: (source: T, stat: Stat) => number;
26
+ currentStat?: (source: T, stat: Stat) => number;
27
+ progress?: (source: T, stats?: Stat[]) => FortuneSourceProgress[];
20
28
  info?: (source: T) => {
21
29
  item?: EliteItemDto;
22
30
  info?: UpgradeableInfo;
23
31
  nextInfo?: UpgradeableInfo;
24
32
  maxInfo?: UpgradeableInfo;
25
33
  };
26
- upgrades?: (source: T) => FortuneUpgrade[];
34
+ upgrades?: (source: T, stats?: Stat[]) => FortuneUpgrade[];
27
35
  }
28
36
  export interface DynamicUpgradeSource<T, Output = unknown> {
29
37
  name: string;
@@ -3,7 +3,7 @@ import { Rarity, REFORGES, ReforgeTarget } from '../../constants/reforges.js';
3
3
  import { Skill } from '../../constants/skills.js';
4
4
  import { Stat } from '../../constants/stats.js';
5
5
  import { GemRarity } from '../../fortune/item.js';
6
- import { getFortuneFromEnchant, getMaxFortuneFromEnchant } from '../../util/enchants.js';
6
+ import { getMaxStatFromEnchant, getStatFromEnchant } from '../../util/enchants.js';
7
7
  import { getPeridotFortune, getPeridotGemFortune } from '../../util/gems.js';
8
8
  import { getUpgradeableEnchant } from '../enchantupgrades.js';
9
9
  import { getUpgradeableGems, getUpgradeableReforges } from '../upgrades.js';
@@ -11,7 +11,7 @@ export const GEAR_FORTUNE_SOURCES = [
11
11
  {
12
12
  name: 'Base Stats',
13
13
  exists: (gear) => {
14
- return (gear.getLastItemUpgrade() ?? gear)?.info?.baseStats?.[Stat.FarmingFortune] !== undefined;
14
+ return Object.keys((gear.getLastItemUpgrade() ?? gear)?.info?.baseStats ?? {}).length > 0;
15
15
  },
16
16
  max: (gear) => {
17
17
  return (gear.getLastItemUpgrade() ?? gear)?.info?.baseStats?.[Stat.FarmingFortune] ?? 0;
@@ -19,6 +19,12 @@ export const GEAR_FORTUNE_SOURCES = [
19
19
  current: (gear) => {
20
20
  return gear.info.baseStats?.[Stat.FarmingFortune] ?? 0;
21
21
  },
22
+ maxStat: (gear, stat) => {
23
+ return (gear.getLastItemUpgrade() ?? gear)?.info?.baseStats?.[stat] ?? 0;
24
+ },
25
+ currentStat: (gear, stat) => {
26
+ return gear.info.baseStats?.[stat] ?? 0;
27
+ },
22
28
  },
23
29
  {
24
30
  name: 'Reforge Stats',
@@ -35,6 +41,26 @@ export const GEAR_FORTUNE_SOURCES = [
35
41
  current: (gear) => {
36
42
  return gear.reforgeStats?.stats?.[Stat.FarmingFortune] ?? 0;
37
43
  },
44
+ maxStat: (gear, stat) => {
45
+ const maxRarity = (gear.getLastItemUpgrade()?.info.maxRarity ?? gear.info.maxRarity);
46
+ const current = gear.reforgeStats?.stats?.[stat] ?? 0;
47
+ let best = 0;
48
+ for (const reforge of Object.values(REFORGES)) {
49
+ if (!reforge || !reforge.appliesTo.includes(gear.type))
50
+ continue;
51
+ // Keep "max" aligned with what we can suggest/cost (stone-based).
52
+ if (!reforge.stone?.id)
53
+ continue;
54
+ const tier = reforge.tiers?.[maxRarity];
55
+ const val = tier?.stats?.[stat] ?? 0;
56
+ if (val > best)
57
+ best = val;
58
+ }
59
+ return Math.max(best, current);
60
+ },
61
+ currentStat: (gear, stat) => {
62
+ return gear.reforgeStats?.stats?.[stat] ?? 0;
63
+ },
38
64
  upgrades: getUpgradeableReforges,
39
65
  },
40
66
  {
@@ -52,6 +78,16 @@ export const GEAR_FORTUNE_SOURCES = [
52
78
  current: (upgradeable) => {
53
79
  return getPeridotFortune(upgradeable.rarity, upgradeable.item);
54
80
  },
81
+ maxStat: (upgradeable, stat) => {
82
+ if (stat !== Stat.FarmingFortune)
83
+ return 0;
84
+ const last = (upgradeable.getLastItemUpgrade() ?? upgradeable)?.info;
85
+ return ((last?.gemSlots?.filter((s) => s.slot_type === 'PERIDOT').length ?? 0) *
86
+ getPeridotGemFortune(last?.maxRarity ?? Rarity.Common, GemRarity.Perfect));
87
+ },
88
+ currentStat: (upgradeable, stat) => {
89
+ return stat === Stat.FarmingFortune ? getPeridotFortune(upgradeable.rarity, upgradeable.item) : 0;
90
+ },
55
91
  upgrades: getUpgradeableGems,
56
92
  },
57
93
  {
@@ -62,6 +98,8 @@ export const GEAR_FORTUNE_SOURCES = [
62
98
  current: (gear) => {
63
99
  return gear.getPieceBonus();
64
100
  },
101
+ maxStat: (_gear, stat) => (stat === Stat.FarmingFortune ? 15 : 0),
102
+ currentStat: (gear, stat) => (stat === Stat.FarmingFortune ? gear.getPieceBonus() : 0),
65
103
  },
66
104
  {
67
105
  name: 'Farming Level',
@@ -76,6 +114,15 @@ export const GEAR_FORTUNE_SOURCES = [
76
114
  current: (gear) => {
77
115
  return (gear.info.perLevelStats?.stats[Stat.FarmingFortune] ?? 0) * (gear.options?.farmingLevel ?? 0);
78
116
  },
117
+ maxStat: (gear, stat) => {
118
+ const last = (gear.getLastItemUpgrade() ?? gear)?.info;
119
+ if (!('perLevelStats' in last) || last.perLevelStats?.skill !== Skill.Farming)
120
+ return 0;
121
+ return (last.perLevelStats?.stats?.[stat] ?? 0) * 60;
122
+ },
123
+ currentStat: (gear, stat) => {
124
+ return (gear.info.perLevelStats?.stats?.[stat] ?? 0) * (gear.options?.farmingLevel ?? 0);
125
+ },
79
126
  },
80
127
  ...Object.entries(FARMING_ENCHANTS ?? {})
81
128
  .filter(([, enchant]) => enchant.appliesTo.includes(ReforgeTarget.Armor) || enchant.appliesTo.includes(ReforgeTarget.Equipment))
@@ -83,9 +130,11 @@ export const GEAR_FORTUNE_SOURCES = [
83
130
  name: enchant.name,
84
131
  wiki: () => enchant.wiki,
85
132
  exists: (gear) => enchant.appliesTo.includes(gear.type),
86
- max: (gear) => getMaxFortuneFromEnchant(enchant, gear.options),
87
- current: (gear) => getFortuneFromEnchant(gear.item.enchantments?.[id] ?? 0, enchant, gear.options),
88
- upgrades: (gear) => getUpgradeableEnchant(gear, id),
133
+ max: (gear) => getMaxStatFromEnchant(enchant, Stat.FarmingFortune, gear.options),
134
+ current: (gear) => getStatFromEnchant(gear.item.enchantments?.[id] ?? 0, enchant, Stat.FarmingFortune, gear.options),
135
+ maxStat: (gear, stat) => getMaxStatFromEnchant(enchant, stat, gear.options),
136
+ currentStat: (gear, stat) => getStatFromEnchant(gear.item.enchantments?.[id] ?? 0, enchant, stat, gear.options),
137
+ upgrades: (gear, stats) => getUpgradeableEnchant(gear, id, stats?.[0] ?? Stat.FarmingFortune),
89
138
  })),
90
139
  ];
91
140
  //# sourceMappingURL=gearsources.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gearsources.js","sourceRoot":"","sources":["../../../src/upgrades/sources/gearsources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAGhD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAG5E,MAAM,CAAC,MAAM,oBAAoB,GAA4D;IAC5F;QACC,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,SAAS,CAAC;QAClG,CAAC;QACD,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;YACb,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACjB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC;KACD;IACD;QACC,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI;QAClB,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;YACd,OAAO,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC;QAC/F,CAAC;QACD,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;YACb,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAW,CAAC;YAC/F,OAAO,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,SAAS;gBAC3C,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBACtE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACjB,OAAO,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC;QACD,QAAQ,EAAE,sBAAsB;KAChC;IACD;QACC,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,GAAG,EAAE,CAAC,kDAAkD;QAC9D,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE;YACvB,MAAM,IAAI,GAAG,CAAC,WAAW,CAAC,kBAAkB,EAAE,IAAI,WAAW,CAAC,EAAE,IAAI,CAAC;YACrE,OAAO,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,KAAK,SAAS,CAAC;QAC7E,CAAC;QACD,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE;YACpB,MAAM,IAAI,GAAG,CAAC,WAAW,CAAC,kBAAkB,EAAE,IAAI,WAAW,CAAC,EAAE,IAAI,CAAC;YACrE,OAAO,CACN,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;gBACtE,oBAAoB,CAAC,IAAI,EAAE,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CACzE,CAAC;QACH,CAAC;QACD,OAAO,EAAE,CAAC,WAAW,EAAE,EAAE;YACxB,OAAO,iBAAiB,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;QACD,QAAQ,EAAE,kBAAkB;KAC5B;IACD;QACC,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO;QACvF,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE;QACb,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACjB,OAAQ,IAAyB,CAAC,aAAa,EAAE,CAAC;QACnD,CAAC;KACD;IACD;QACC,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,KAAK,KAAK,CAAC,OAAO;QACvG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;YACb,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC;YACvD,OAAO,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,KAAK,KAAK,CAAC,OAAO;gBAC5E,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE;gBAC7D,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QACrE,CAAC;QACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACjB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC;QACvG,CAAC;KACD;IACD,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC;SACvC,MAAM,CACN,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CACf,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CACvG;SACA,GAAG,CACH,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CACjB,CAAC;QACA,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI;QACxB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QACvD,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;QAC9D,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;QAClG,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC;KACnD,CAA0D,CAC5D;CACF,CAAC"}
1
+ {"version":3,"file":"gearsources.js","sourceRoot":"","sources":["../../../src/upgrades/sources/gearsources.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,27 @@
1
- import { FARMING_ATTRIBUTE_SHARDS, getShardFortune, getShardLevel, getShardsForNextLevel, } from '../../constants/attributes.js';
2
- import { ANITA_FORTUNE_UPGRADE, COMMUNITY_CENTER_UPGRADE, FARMING_LEVEL, PEST_BESTIARY_SOURCE, REFINED_TRUFFLE_SOURCE, UNLOCKED_PLOTS, } from '../../constants/specific.js';
1
+ import { FARMING_ATTRIBUTE_SHARDS, getShardFortune, getShardLevel, getShardsForLevel, getShardsForNextLevel, } from '../../constants/attributes.js';
2
+ import { ANITA_FORTUNE_UPGRADE, COMMUNITY_CENTER_UPGRADE, FARMING_LEVEL, PEST_BESTIARY_SOURCE, REFINED_TRUFFLE_SOURCE, UNLOCKED_PLOTS, WRIGGLING_LARVA_SOURCE, } from '../../constants/specific.js';
3
3
  import { Stat } from '../../constants/stats.js';
4
4
  import { UpgradeAction, UpgradeCategory } from '../../constants/upgrades.js';
5
5
  import { FarmingAccessory } from '../../fortune/farmingaccessory.js';
6
6
  import { FARMING_ACCESSORIES_INFO } from '../../items/accessories.js';
7
7
  import { getNextPlotCost } from '../../util/garden.js';
8
8
  import { fortuneFromPestBestiary } from '../../util/pests.js';
9
+ import { getFortune } from '../getfortune.js';
9
10
  import { getSourceProgress } from '../getsourceprogress.js';
11
+ function getLevelDeltaStats(currentLevel, nextLevel, source) {
12
+ const result = {};
13
+ // Always include FarmingFortune
14
+ const ff = (source.fortunePerLevel ?? 0) * (nextLevel - currentLevel);
15
+ if (ff !== 0)
16
+ result[Stat.FarmingFortune] = ff;
17
+ for (const [k, per] of Object.entries(source.statsPerLevel ?? {})) {
18
+ const stat = k;
19
+ const diff = (per ?? 0) * (nextLevel - currentLevel);
20
+ if (diff !== 0)
21
+ result[stat] = diff;
22
+ }
23
+ return result;
24
+ }
10
25
  export const GENERAL_FORTUNE_SOURCES = [
11
26
  {
12
27
  name: FARMING_LEVEL.name,
@@ -16,6 +31,8 @@ export const GENERAL_FORTUNE_SOURCES = [
16
31
  current: (player) => {
17
32
  return (player.options.farmingLevel ?? 0) * FARMING_LEVEL.fortunePerLevel;
18
33
  },
34
+ maxStat: (_player, stat) => getFortune(FARMING_LEVEL.maxLevel, FARMING_LEVEL, stat),
35
+ currentStat: (player, stat) => getFortune(player.options.farmingLevel, FARMING_LEVEL, stat),
19
36
  upgrades: (player) => {
20
37
  const current = player.options.farmingLevel ?? 0;
21
38
  if (current < 50 || current >= FARMING_LEVEL.maxLevel)
@@ -23,14 +40,21 @@ export const GENERAL_FORTUNE_SOURCES = [
23
40
  const nextCost = FARMING_LEVEL.upgradeCosts?.[current + 1];
24
41
  if (!nextCost)
25
42
  return [];
43
+ const stats = getLevelDeltaStats(current, current + 1, FARMING_LEVEL);
26
44
  return [
27
45
  {
28
46
  title: FARMING_LEVEL.name + ' ' + (current + 1),
29
- increase: FARMING_LEVEL.fortunePerLevel,
47
+ increase: stats[Stat.FarmingFortune] ?? 0,
48
+ stats,
30
49
  action: UpgradeAction.LevelUp,
31
50
  category: UpgradeCategory.Skill,
32
51
  wiki: FARMING_LEVEL.wiki,
33
52
  cost: nextCost,
53
+ meta: {
54
+ type: 'skill',
55
+ key: 'farmingLevel',
56
+ value: current + 1,
57
+ },
34
58
  },
35
59
  ];
36
60
  },
@@ -55,8 +79,8 @@ export const GENERAL_FORTUNE_SOURCES = [
55
79
  .flatMap((shard) => shard.upgrades?.(player))
56
80
  .filter(Boolean);
57
81
  },
58
- progress: (player) => {
59
- return getSourceProgress(player, ATTRIBUTE_FORTUNE_SOURCES);
82
+ progress: (player, stats) => {
83
+ return getSourceProgress(player, ATTRIBUTE_FORTUNE_SOURCES, false, stats);
60
84
  },
61
85
  },
62
86
  {
@@ -76,6 +100,8 @@ export const GENERAL_FORTUNE_SOURCES = [
76
100
  current: (player) => {
77
101
  return (player.options.anitaBonus ?? 0) * ANITA_FORTUNE_UPGRADE.fortunePerLevel;
78
102
  },
103
+ maxStat: (_player, stat) => getFortune(ANITA_FORTUNE_UPGRADE.maxLevel, ANITA_FORTUNE_UPGRADE, stat),
104
+ currentStat: (player, stat) => getFortune(player.options.anitaBonus, ANITA_FORTUNE_UPGRADE, stat),
79
105
  upgrades: (player) => {
80
106
  const current = player.options.anitaBonus ?? 0;
81
107
  if (current >= ANITA_FORTUNE_UPGRADE.maxLevel)
@@ -83,14 +109,21 @@ export const GENERAL_FORTUNE_SOURCES = [
83
109
  const nextCost = ANITA_FORTUNE_UPGRADE.upgradeCosts?.[current + 1];
84
110
  if (!nextCost)
85
111
  return [];
112
+ const stats = getLevelDeltaStats(current, current + 1, ANITA_FORTUNE_UPGRADE);
86
113
  return [
87
114
  {
88
115
  title: ANITA_FORTUNE_UPGRADE.name,
89
- increase: ANITA_FORTUNE_UPGRADE.fortunePerLevel,
116
+ increase: stats[Stat.FarmingFortune] ?? 0,
117
+ stats,
90
118
  action: UpgradeAction.Upgrade,
91
119
  category: UpgradeCategory.Anita,
92
120
  wiki: ANITA_FORTUNE_UPGRADE.wiki,
93
121
  cost: nextCost,
122
+ meta: {
123
+ type: 'skill',
124
+ key: 'anitaBonus',
125
+ value: current + 1,
126
+ },
94
127
  },
95
128
  ];
96
129
  },
@@ -103,17 +136,27 @@ export const GENERAL_FORTUNE_SOURCES = [
103
136
  current: (player) => {
104
137
  return (player.options.plots?.length ?? player.options.plotsUnlocked ?? 0) * UNLOCKED_PLOTS.fortunePerLevel;
105
138
  },
139
+ maxStat: (_player, stat) => getFortune(UNLOCKED_PLOTS.maxLevel, UNLOCKED_PLOTS, stat),
140
+ currentStat: (player, stat) => getFortune(player.options.plots?.length ?? player.options.plotsUnlocked, UNLOCKED_PLOTS, stat),
106
141
  upgrades: (player) => {
107
142
  const plotUpgrade = getNextPlotCost(player.options.plots ?? []);
108
143
  if (!plotUpgrade)
109
144
  return [];
145
+ const current = player.options.plots?.length ?? player.options.plotsUnlocked ?? 0;
146
+ const stats = getLevelDeltaStats(current, current + 1, UNLOCKED_PLOTS);
110
147
  return [
111
148
  {
112
149
  title: 'Plot ' + plotUpgrade.plot?.name,
113
- increase: UNLOCKED_PLOTS.fortunePerLevel,
150
+ increase: stats[Stat.FarmingFortune] ?? 0,
151
+ stats,
114
152
  action: UpgradeAction.Purchase,
115
153
  category: UpgradeCategory.Plot,
116
154
  cost: plotUpgrade.cost,
155
+ meta: {
156
+ type: 'plot',
157
+ id: plotUpgrade.plotId,
158
+ value: current + 1,
159
+ },
117
160
  },
118
161
  ];
119
162
  },
@@ -127,19 +170,28 @@ export const GENERAL_FORTUNE_SOURCES = [
127
170
  current: (player) => {
128
171
  return (player.options.communityCenter ?? 0) * COMMUNITY_CENTER_UPGRADE.fortunePerLevel;
129
172
  },
173
+ maxStat: (_player, stat) => getFortune(COMMUNITY_CENTER_UPGRADE.maxLevel, COMMUNITY_CENTER_UPGRADE, stat),
174
+ currentStat: (player, stat) => getFortune(player.options.communityCenter, COMMUNITY_CENTER_UPGRADE, stat),
130
175
  upgrades: (player) => {
131
176
  const current = player.options.communityCenter ?? 0;
132
177
  if (current >= COMMUNITY_CENTER_UPGRADE.maxLevel)
133
178
  return [];
179
+ const stats = getLevelDeltaStats(current, current + 1, COMMUNITY_CENTER_UPGRADE);
134
180
  return [
135
181
  {
136
182
  title: COMMUNITY_CENTER_UPGRADE.name,
137
- increase: COMMUNITY_CENTER_UPGRADE.fortunePerLevel,
183
+ increase: stats[Stat.FarmingFortune] ?? 0,
184
+ stats,
138
185
  action: UpgradeAction.Upgrade,
139
186
  repeatable: COMMUNITY_CENTER_UPGRADE.maxLevel - current,
140
187
  api: false,
141
188
  category: UpgradeCategory.CommunityCenter,
142
189
  wiki: COMMUNITY_CENTER_UPGRADE.wiki,
190
+ meta: {
191
+ type: 'skill',
192
+ key: 'communityCenter',
193
+ value: current + 1,
194
+ },
143
195
  },
144
196
  ];
145
197
  },
@@ -181,6 +233,9 @@ export const GENERAL_FORTUNE_SOURCES = [
181
233
  {
182
234
  title: cropie.name,
183
235
  increase: cropie.baseStats?.[Stat.FarmingFortune] ?? 0,
236
+ stats: {
237
+ [Stat.FarmingFortune]: cropie.baseStats?.[Stat.FarmingFortune] ?? 0,
238
+ },
184
239
  action: UpgradeAction.Purchase,
185
240
  item: 'CROPIE_TALISMAN',
186
241
  category: UpgradeCategory.Item,
@@ -190,6 +245,11 @@ export const GENERAL_FORTUNE_SOURCES = [
190
245
  CROPIE_TALISMAN: 1,
191
246
  },
192
247
  },
248
+ meta: {
249
+ type: 'buy_item',
250
+ id: 'CROPIE_TALISMAN',
251
+ },
252
+ conflictKey: 'accessory:CROPIE_TALISMAN',
193
253
  },
194
254
  ];
195
255
  }
@@ -204,6 +264,8 @@ export const GENERAL_FORTUNE_SOURCES = [
204
264
  current: (player) => {
205
265
  return (player.options.refinedTruffles ?? 0) * REFINED_TRUFFLE_SOURCE.fortunePerLevel;
206
266
  },
267
+ maxStat: (_player, stat) => getFortune(REFINED_TRUFFLE_SOURCE.maxLevel, REFINED_TRUFFLE_SOURCE, stat),
268
+ currentStat: (player, stat) => getFortune(player.options.refinedTruffles ?? 0, REFINED_TRUFFLE_SOURCE, stat),
207
269
  upgrades: (player) => {
208
270
  const consumed = player.options.refinedTruffles ?? 0;
209
271
  if (consumed >= 5)
@@ -212,6 +274,9 @@ export const GENERAL_FORTUNE_SOURCES = [
212
274
  {
213
275
  title: 'Refined Dark Cacao Truffle',
214
276
  increase: REFINED_TRUFFLE_SOURCE.fortunePerLevel,
277
+ stats: {
278
+ [Stat.FarmingFortune]: REFINED_TRUFFLE_SOURCE.fortunePerLevel,
279
+ },
215
280
  action: UpgradeAction.Consume,
216
281
  repeatable: 5 - consumed,
217
282
  wiki: REFINED_TRUFFLE_SOURCE.wiki,
@@ -221,6 +286,50 @@ export const GENERAL_FORTUNE_SOURCES = [
221
286
  REFINED_DARK_CACAO_TRUFFLE: 1,
222
287
  },
223
288
  },
289
+ meta: {
290
+ type: 'setting',
291
+ key: 'refinedTruffles',
292
+ value: consumed + 1,
293
+ },
294
+ },
295
+ ];
296
+ },
297
+ },
298
+ {
299
+ name: WRIGGLING_LARVA_SOURCE.name,
300
+ wiki: () => WRIGGLING_LARVA_SOURCE.wiki,
301
+ exists: () => true,
302
+ max: () => 0,
303
+ current: () => 0,
304
+ maxStat: (_player, stat) => getFortune(WRIGGLING_LARVA_SOURCE.maxLevel, WRIGGLING_LARVA_SOURCE, stat),
305
+ currentStat: (player, stat) => getFortune(player.options.wrigglingLarva ?? 0, WRIGGLING_LARVA_SOURCE, stat),
306
+ upgrades: (player, stats) => {
307
+ if (!stats?.includes(Stat.BonusPestChance))
308
+ return [];
309
+ const consumed = player.options.wrigglingLarva ?? 0;
310
+ if (consumed >= 5)
311
+ return [];
312
+ return [
313
+ {
314
+ title: 'Wriggling Larva',
315
+ increase: 0,
316
+ stats: {
317
+ [Stat.BonusPestChance]: WRIGGLING_LARVA_SOURCE.statsPerLevel?.[Stat.BonusPestChance] ?? 0,
318
+ },
319
+ action: UpgradeAction.Consume,
320
+ repeatable: 5 - consumed,
321
+ wiki: WRIGGLING_LARVA_SOURCE.wiki,
322
+ category: UpgradeCategory.Item,
323
+ cost: {
324
+ items: {
325
+ WRIGGLING_LARVA: 1,
326
+ },
327
+ },
328
+ meta: {
329
+ type: 'setting',
330
+ key: 'wrigglingLarva',
331
+ value: consumed + 1,
332
+ },
224
333
  },
225
334
  ];
226
335
  },
@@ -256,16 +365,68 @@ export const GENERAL_FORTUNE_SOURCES = [
256
365
  {
257
366
  title: 'Relic of Power',
258
367
  increase: 0,
368
+ stats: {
369
+ [Stat.FarmingFortune]: 0,
370
+ },
259
371
  action: UpgradeAction.Purchase,
260
372
  purchase: 'POWER_RELIC',
261
373
  category: UpgradeCategory.Item,
262
374
  wiki: FARMING_ACCESSORIES_INFO.POWER_RELIC?.wiki,
263
375
  cost: FARMING_ACCESSORIES_INFO.POWER_RELIC?.cost,
376
+ meta: {
377
+ type: 'buy_item',
378
+ id: 'POWER_RELIC',
379
+ },
380
+ conflictKey: 'accessory:POWER_RELIC',
264
381
  },
265
382
  ];
266
383
  return accessory.getUpgrades();
267
384
  },
268
385
  },
386
+ {
387
+ name: 'Magic 8 Ball',
388
+ exists: () => true,
389
+ wiki: () => 'https://wiki.hypixel.net/Magic_8_Ball',
390
+ max: () => 25,
391
+ active: () => {
392
+ return {
393
+ active: true,
394
+ reason: 'Magic 8 Ball only has a 20% chance to be active each season.',
395
+ };
396
+ },
397
+ current: (player) => {
398
+ const accessory = player.accessories.find((a) => a.info.skyblockId === 'MAGIC_8_BALL');
399
+ return accessory ? 25 : 0;
400
+ },
401
+ upgrades: (player) => {
402
+ const accessory = player.accessories.find((a) => a.info.skyblockId === 'MAGIC_8_BALL');
403
+ if (!accessory)
404
+ return [
405
+ {
406
+ title: 'Magic 8 Ball',
407
+ increase: 25 * 0.2,
408
+ stats: {
409
+ [Stat.FarmingFortune]: 25 * 0.2,
410
+ },
411
+ action: UpgradeAction.Purchase,
412
+ purchase: 'MAGIC_8_BALL',
413
+ category: UpgradeCategory.Item,
414
+ wiki: 'https://wiki.hypixel.net/Magic_8_Ball',
415
+ cost: {
416
+ items: {
417
+ MAGIC_8_BALL: 1,
418
+ },
419
+ },
420
+ meta: {
421
+ type: 'buy_item',
422
+ id: 'MAGIC_8_BALL',
423
+ },
424
+ conflictKey: 'accessory:MAGIC_8_BALL',
425
+ },
426
+ ];
427
+ return [];
428
+ },
429
+ },
269
430
  ];
270
431
  export const ATTRIBUTE_FORTUNE_SOURCES = Object.entries(FARMING_ATTRIBUTE_SHARDS)
271
432
  .filter((a) => a[1].effect === 'fortune')
@@ -311,6 +472,9 @@ function mapShardSource(id, shard) {
311
472
  title: shard.name.replace('Shard', level.toString()),
312
473
  api: false,
313
474
  increase: nextFortune - currentFortune,
475
+ stats: {
476
+ [Stat.FarmingFortune]: nextFortune - currentFortune,
477
+ },
314
478
  action: UpgradeAction.LevelUp,
315
479
  category: UpgradeCategory.Attribute,
316
480
  // wiki: shard.wiki, // Wiki page doesn't exist yet
@@ -319,6 +483,11 @@ function mapShardSource(id, shard) {
319
483
  [shard.skyblockId]: nextCost,
320
484
  },
321
485
  },
486
+ meta: {
487
+ type: 'attribute',
488
+ key: id,
489
+ value: getShardsForLevel(shard.rarity, level),
490
+ },
322
491
  },
323
492
  ];
324
493
  },