farming-weight 0.14.2 → 0.15.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 (318) hide show
  1. package/README.md +45 -18
  2. package/dist/constants/attributes.d.ts +12 -7
  3. package/dist/constants/attributes.js +17 -39
  4. package/dist/constants/attributes.js.map +1 -1
  5. package/dist/constants/chips.d.ts +1 -6
  6. package/dist/constants/chips.js +11 -15
  7. package/dist/constants/chips.js.map +1 -1
  8. package/dist/constants/crops.d.ts +28 -4
  9. package/dist/constants/crops.js +65 -2
  10. package/dist/constants/crops.js.map +1 -1
  11. package/dist/constants/enchants.d.ts +1 -1
  12. package/dist/constants/enchants.js +117 -68
  13. package/dist/constants/enchants.js.map +1 -1
  14. package/dist/constants/garden.js +152 -137
  15. package/dist/constants/garden.js.map +1 -1
  16. package/dist/constants/pests.d.ts +3 -2
  17. package/dist/constants/pests.js +5 -0
  18. package/dist/constants/pests.js.map +1 -1
  19. package/dist/constants/reforge-types.d.ts +57 -0
  20. package/dist/constants/reforge-types.js +40 -0
  21. package/dist/constants/reforge-types.js.map +1 -0
  22. package/dist/constants/reforges.d.ts +8 -55
  23. package/dist/constants/reforges.js +10 -635
  24. package/dist/constants/reforges.js.map +1 -1
  25. package/dist/constants/specific.js +11 -11
  26. package/dist/constants/specific.js.map +1 -1
  27. package/dist/constants/stats.d.ts +1 -0
  28. package/dist/constants/stats.js +2 -0
  29. package/dist/constants/stats.js.map +1 -1
  30. package/dist/constants/tempfortune.d.ts +5 -0
  31. package/dist/constants/tempfortune.js +36 -7
  32. package/dist/constants/tempfortune.js.map +1 -1
  33. package/dist/constants/upgrades.d.ts +36 -3
  34. package/dist/constants/upgrades.js +12 -0
  35. package/dist/constants/upgrades.js.map +1 -1
  36. package/dist/crops/special.d.ts +1 -1
  37. package/dist/crops/special.js.map +1 -1
  38. package/dist/effects/environment.d.ts +12 -0
  39. package/dist/effects/environment.js +33 -0
  40. package/dist/effects/environment.js.map +1 -0
  41. package/dist/effects/index.d.ts +4 -0
  42. package/dist/effects/index.js +5 -0
  43. package/dist/effects/index.js.map +1 -0
  44. package/dist/effects/matcher.d.ts +23 -0
  45. package/dist/effects/matcher.js +108 -0
  46. package/dist/effects/matcher.js.map +1 -0
  47. package/dist/effects/resolver.d.ts +63 -0
  48. package/dist/effects/resolver.js +239 -0
  49. package/dist/effects/resolver.js.map +1 -0
  50. package/dist/effects/summary.d.ts +5 -0
  51. package/dist/effects/summary.js +21 -0
  52. package/dist/effects/summary.js.map +1 -0
  53. package/dist/effects/types.d.ts +147 -0
  54. package/dist/effects/types.js +9 -0
  55. package/dist/effects/types.js.map +1 -0
  56. package/dist/features/composter/upgrades.js +5 -5
  57. package/dist/features/composter/upgrades.js.map +1 -1
  58. package/dist/fortune/farmingaccessory.d.ts +9 -1
  59. package/dist/fortune/farmingaccessory.js +24 -13
  60. package/dist/fortune/farmingaccessory.js.map +1 -1
  61. package/dist/fortune/farmingarmor.d.ts +21 -10
  62. package/dist/fortune/farmingarmor.js +89 -29
  63. package/dist/fortune/farmingarmor.js.map +1 -1
  64. package/dist/fortune/farmingequipment.d.ts +10 -1
  65. package/dist/fortune/farmingequipment.js +44 -11
  66. package/dist/fortune/farmingequipment.js.map +1 -1
  67. package/dist/fortune/farmingpet.d.ts +16 -0
  68. package/dist/fortune/farmingpet.js +207 -0
  69. package/dist/fortune/farmingpet.js.map +1 -1
  70. package/dist/fortune/farmingtool.d.ts +13 -6
  71. package/dist/fortune/farmingtool.js +60 -44
  72. package/dist/fortune/farmingtool.js.map +1 -1
  73. package/dist/fortune/lotuspiecebonus.d.ts +6 -0
  74. package/dist/fortune/lotuspiecebonus.js +20 -0
  75. package/dist/fortune/lotuspiecebonus.js.map +1 -0
  76. package/dist/fortune/upgradeable.d.ts +2 -4
  77. package/dist/fortune/upgradeablebase.d.ts +2 -4
  78. package/dist/fortune/upgradeablebase.js +4 -10
  79. package/dist/fortune/upgradeablebase.js.map +1 -1
  80. package/dist/index.d.ts +4 -0
  81. package/dist/index.js +4 -0
  82. package/dist/index.js.map +1 -1
  83. package/dist/items/accessories/base.d.ts +3 -0
  84. package/dist/items/accessories/base.js +4 -0
  85. package/dist/items/accessories/base.js.map +1 -0
  86. package/dist/items/accessories/fermento-family.d.ts +91 -0
  87. package/dist/items/accessories/fermento-family.js +125 -0
  88. package/dist/items/accessories/fermento-family.js.map +1 -0
  89. package/dist/items/accessories/freshly-baked.d.ts +80 -0
  90. package/dist/items/accessories/freshly-baked.js +119 -0
  91. package/dist/items/accessories/freshly-baked.js.map +1 -0
  92. package/dist/items/accessories/index.d.ts +25 -0
  93. package/dist/items/accessories/index.js +25 -0
  94. package/dist/items/accessories/index.js.map +1 -0
  95. package/dist/items/accessories/power-relic.d.ts +18 -0
  96. package/dist/items/accessories/power-relic.js +37 -0
  97. package/dist/items/accessories/power-relic.js.map +1 -0
  98. package/dist/items/accessories/special.d.ts +24 -0
  99. package/dist/items/accessories/special.js +41 -0
  100. package/dist/items/accessories/special.js.map +1 -0
  101. package/dist/items/accessories.d.ts +2 -3
  102. package/dist/items/accessories.js +1 -137
  103. package/dist/items/accessories.js.map +1 -1
  104. package/dist/items/armor/biohazard.js +4 -4
  105. package/dist/items/armor/biohazard.js.map +1 -1
  106. package/dist/items/armor/cropie.d.ts +4 -0
  107. package/dist/items/armor/cropie.js +10 -4
  108. package/dist/items/armor/cropie.js.map +1 -1
  109. package/dist/items/armor/farm.js +4 -4
  110. package/dist/items/armor/farm.js.map +1 -1
  111. package/dist/items/armor/fermento.d.ts +4 -0
  112. package/dist/items/armor/fermento.js +10 -4
  113. package/dist/items/armor/fermento.js.map +1 -1
  114. package/dist/items/armor/groups.d.ts +2 -0
  115. package/dist/items/armor/groups.js +17 -0
  116. package/dist/items/armor/groups.js.map +1 -0
  117. package/dist/items/armor/helianthus.js +4 -4
  118. package/dist/items/armor/helianthus.js.map +1 -1
  119. package/dist/items/armor/melon.d.ts +4 -0
  120. package/dist/items/armor/melon.js +10 -4
  121. package/dist/items/armor/melon.js.map +1 -1
  122. package/dist/items/armor/mushroom.js +4 -4
  123. package/dist/items/armor/mushroom.js.map +1 -1
  124. package/dist/items/armor/rabbit.js +4 -4
  125. package/dist/items/armor/rabbit.js.map +1 -1
  126. package/dist/items/armor/special.js +4 -4
  127. package/dist/items/armor/special.js.map +1 -1
  128. package/dist/items/armor/squash.d.ts +4 -0
  129. package/dist/items/armor/squash.js +10 -4
  130. package/dist/items/armor/squash.js.map +1 -1
  131. package/dist/items/equipment/blossom.js +4 -4
  132. package/dist/items/equipment/blossom.js.map +1 -1
  133. package/dist/items/equipment/lotus.js +4 -4
  134. package/dist/items/equipment/lotus.js.map +1 -1
  135. package/dist/items/equipment/pesthunter.js +4 -4
  136. package/dist/items/equipment/pesthunter.js.map +1 -1
  137. package/dist/items/equipment/special.js +2 -2
  138. package/dist/items/equipment/special.js.map +1 -1
  139. package/dist/items/gems/base.d.ts +19 -0
  140. package/dist/items/gems/base.js +60 -0
  141. package/dist/items/gems/base.js.map +1 -0
  142. package/dist/items/gems/index.d.ts +1 -0
  143. package/dist/items/gems/index.js +2 -0
  144. package/dist/items/gems/index.js.map +1 -0
  145. package/dist/items/pets/bee.d.ts +9 -0
  146. package/dist/items/pets/bee.js +33 -1
  147. package/dist/items/pets/bee.js.map +1 -1
  148. package/dist/items/pets/chicken.js +1 -1
  149. package/dist/items/pets/chicken.js.map +1 -1
  150. package/dist/items/pets/elephant.js +1 -1
  151. package/dist/items/pets/elephant.js.map +1 -1
  152. package/dist/items/pets/hedgehog.d.ts +5 -0
  153. package/dist/items/pets/hedgehog.js +6 -1
  154. package/dist/items/pets/hedgehog.js.map +1 -1
  155. package/dist/items/pets/mooshroom-cow.js +1 -1
  156. package/dist/items/pets/mooshroom-cow.js.map +1 -1
  157. package/dist/items/pets/mosquito.js +1 -1
  158. package/dist/items/pets/mosquito.js.map +1 -1
  159. package/dist/items/pets/pig.d.ts +5 -0
  160. package/dist/items/pets/pig.js +19 -14
  161. package/dist/items/pets/pig.js.map +1 -1
  162. package/dist/items/pets/rabbit.js +1 -1
  163. package/dist/items/pets/rabbit.js.map +1 -1
  164. package/dist/items/pets/rose-dragon.js +12 -14
  165. package/dist/items/pets/rose-dragon.js.map +1 -1
  166. package/dist/items/pets/slug.js +1 -1
  167. package/dist/items/pets/slug.js.map +1 -1
  168. package/dist/items/pets.d.ts +1 -1
  169. package/dist/items/pets.js +18 -4
  170. package/dist/items/pets.js.map +1 -1
  171. package/dist/items/reforges/base.d.ts +18 -0
  172. package/dist/items/reforges/base.js +54 -0
  173. package/dist/items/reforges/base.js.map +1 -0
  174. package/dist/items/reforges/blessed.d.ts +7 -0
  175. package/dist/items/reforges/blessed.js +90 -0
  176. package/dist/items/reforges/blessed.js.map +1 -0
  177. package/dist/items/reforges/blooming.d.ts +4 -0
  178. package/dist/items/reforges/blooming.js +43 -0
  179. package/dist/items/reforges/blooming.js.map +1 -0
  180. package/dist/items/reforges/bountiful.d.ts +4 -0
  181. package/dist/items/reforges/bountiful.js +63 -0
  182. package/dist/items/reforges/bountiful.js.map +1 -0
  183. package/dist/items/reforges/bustling.d.ts +4 -0
  184. package/dist/items/reforges/bustling.js +26 -0
  185. package/dist/items/reforges/bustling.js.map +1 -0
  186. package/dist/items/reforges/deep-fried.d.ts +7 -0
  187. package/dist/items/reforges/deep-fried.js +38 -0
  188. package/dist/items/reforges/deep-fried.js.map +1 -0
  189. package/dist/items/reforges/earthy.d.ts +4 -0
  190. package/dist/items/reforges/earthy.js +26 -0
  191. package/dist/items/reforges/earthy.js.map +1 -0
  192. package/dist/items/reforges/green-thumb.d.ts +4 -0
  193. package/dist/items/reforges/green-thumb.js +43 -0
  194. package/dist/items/reforges/green-thumb.js.map +1 -0
  195. package/dist/items/reforges/index.d.ts +16 -0
  196. package/dist/items/reforges/index.js +43 -0
  197. package/dist/items/reforges/index.js.map +1 -0
  198. package/dist/items/reforges/mantid.d.ts +4 -0
  199. package/dist/items/reforges/mantid.js +43 -0
  200. package/dist/items/reforges/mantid.js.map +1 -0
  201. package/dist/items/reforges/mossy.d.ts +4 -0
  202. package/dist/items/reforges/mossy.js +44 -0
  203. package/dist/items/reforges/mossy.js.map +1 -0
  204. package/dist/items/reforges/overpriced.d.ts +4 -0
  205. package/dist/items/reforges/overpriced.js +43 -0
  206. package/dist/items/reforges/overpriced.js.map +1 -0
  207. package/dist/items/reforges/robust.d.ts +4 -0
  208. package/dist/items/reforges/robust.js +22 -0
  209. package/dist/items/reforges/robust.js.map +1 -0
  210. package/dist/items/reforges/rooted.d.ts +4 -0
  211. package/dist/items/reforges/rooted.js +43 -0
  212. package/dist/items/reforges/rooted.js.map +1 -0
  213. package/dist/items/reforges/squeaky.d.ts +4 -0
  214. package/dist/items/reforges/squeaky.js +47 -0
  215. package/dist/items/reforges/squeaky.js.map +1 -0
  216. package/dist/items/sources/attributes.d.ts +119 -0
  217. package/dist/items/sources/attributes.js +285 -0
  218. package/dist/items/sources/attributes.js.map +1 -0
  219. package/dist/items/sources/base.d.ts +33 -0
  220. package/dist/items/sources/base.js +13 -0
  221. package/dist/items/sources/base.js.map +1 -0
  222. package/dist/items/sources/chips.d.ts +54 -0
  223. package/dist/items/sources/chips.js +100 -0
  224. package/dist/items/sources/chips.js.map +1 -0
  225. package/dist/items/sources/effects-util.d.ts +10 -0
  226. package/dist/items/sources/effects-util.js +35 -0
  227. package/dist/items/sources/effects-util.js.map +1 -0
  228. package/dist/items/sources/enchants.d.ts +28 -0
  229. package/dist/items/sources/enchants.js +87 -0
  230. package/dist/items/sources/enchants.js.map +1 -0
  231. package/dist/items/sources/gems.d.ts +9 -0
  232. package/dist/items/sources/gems.js +35 -0
  233. package/dist/items/sources/gems.js.map +1 -0
  234. package/dist/items/sources/index.d.ts +6 -0
  235. package/dist/items/sources/index.js +7 -0
  236. package/dist/items/sources/index.js.map +1 -0
  237. package/dist/items/sources/reforges.d.ts +8 -0
  238. package/dist/items/sources/reforges.js +10 -0
  239. package/dist/items/sources/reforges.js.map +1 -0
  240. package/dist/items/tools/cactus-knife.js +6 -6
  241. package/dist/items/tools/cactus-knife.js.map +1 -1
  242. package/dist/items/tools/cocoa-chopper.js +6 -6
  243. package/dist/items/tools/cocoa-chopper.js.map +1 -1
  244. package/dist/items/tools/dicers.js +6 -6
  245. package/dist/items/tools/dicers.js.map +1 -1
  246. package/dist/items/tools/fungi-cutter.js +6 -6
  247. package/dist/items/tools/fungi-cutter.js.map +1 -1
  248. package/dist/items/tools/mathematical-hoes.d.ts +5 -5
  249. package/dist/items/tools/mathematical-hoes.js +26 -26
  250. package/dist/items/tools/mathematical-hoes.js.map +1 -1
  251. package/dist/items/tools/special.js +2 -2
  252. package/dist/items/tools/special.js.map +1 -1
  253. package/dist/items/types/pets.d.ts +0 -2
  254. package/dist/player/player.d.ts +60 -7
  255. package/dist/player/player.js +318 -128
  256. package/dist/player/player.js.map +1 -1
  257. package/dist/player/playeroptions.d.ts +25 -1
  258. package/dist/player/playeroptions.js.map +1 -1
  259. package/dist/upgrades/enchantupgrades.js +22 -8
  260. package/dist/upgrades/enchantupgrades.js.map +1 -1
  261. package/dist/upgrades/getsourceprogress.js +7 -0
  262. package/dist/upgrades/getsourceprogress.js.map +1 -1
  263. package/dist/upgrades/groups.d.ts +3 -0
  264. package/dist/upgrades/groups.js +86 -0
  265. package/dist/upgrades/groups.js.map +1 -0
  266. package/dist/upgrades/itemcatalog.d.ts +3 -0
  267. package/dist/upgrades/itemcatalog.js +21 -0
  268. package/dist/upgrades/itemcatalog.js.map +1 -0
  269. package/dist/upgrades/itemregistry.d.ts +1 -2
  270. package/dist/upgrades/itemregistry.js +23 -3
  271. package/dist/upgrades/itemregistry.js.map +1 -1
  272. package/dist/upgrades/sources/accessorysources.js +1 -1
  273. package/dist/upgrades/sources/accessorysources.js.map +1 -1
  274. package/dist/upgrades/sources/armorsetsources.js +16 -16
  275. package/dist/upgrades/sources/armorsetsources.js.map +1 -1
  276. package/dist/upgrades/sources/cropsources.js +10 -5
  277. package/dist/upgrades/sources/cropsources.js.map +1 -1
  278. package/dist/upgrades/sources/dynamicfortunesources.d.ts +5 -2
  279. package/dist/upgrades/sources/effectsources.d.ts +4 -0
  280. package/dist/upgrades/sources/effectsources.js +60 -0
  281. package/dist/upgrades/sources/effectsources.js.map +1 -0
  282. package/dist/upgrades/sources/gearsources.js +33 -8
  283. package/dist/upgrades/sources/gearsources.js.map +1 -1
  284. package/dist/upgrades/sources/generalsources.d.ts +3 -2
  285. package/dist/upgrades/sources/generalsources.js +313 -22
  286. package/dist/upgrades/sources/generalsources.js.map +1 -1
  287. package/dist/upgrades/sources/toolsources.js +64 -84
  288. package/dist/upgrades/sources/toolsources.js.map +1 -1
  289. package/dist/upgrades/upgradekeys.d.ts +2 -0
  290. package/dist/upgrades/upgradekeys.js +5 -0
  291. package/dist/upgrades/upgradekeys.js.map +1 -0
  292. package/dist/upgrades/upgrades.d.ts +5 -7
  293. package/dist/upgrades/upgrades.js +142 -43
  294. package/dist/upgrades/upgrades.js.map +1 -1
  295. package/dist/upgrades/upgradeutils.d.ts +2 -4
  296. package/dist/upgrades/upgradeutils.js +26 -6
  297. package/dist/upgrades/upgradeutils.js.map +1 -1
  298. package/dist/util/bestiary.d.ts +10 -0
  299. package/dist/util/bestiary.js +41 -0
  300. package/dist/util/bestiary.js.map +1 -0
  301. package/dist/util/enchants.d.ts +6 -0
  302. package/dist/util/enchants.js +20 -5
  303. package/dist/util/enchants.js.map +1 -1
  304. package/dist/util/gems.js +4 -30
  305. package/dist/util/gems.js.map +1 -1
  306. package/dist/util/itemstats.d.ts +3 -0
  307. package/dist/util/itemstats.js +20 -2
  308. package/dist/util/itemstats.js.map +1 -1
  309. package/dist/util/ratecalc-effects.d.ts +64 -0
  310. package/dist/util/ratecalc-effects.js +252 -0
  311. package/dist/util/ratecalc-effects.js.map +1 -0
  312. package/dist/util/ratecalc.d.ts +0 -33
  313. package/dist/util/ratecalc.js +0 -187
  314. package/dist/util/ratecalc.js.map +1 -1
  315. package/dist/util/skyblocktime.d.ts +1 -0
  316. package/dist/util/skyblocktime.js +4 -0
  317. package/dist/util/skyblocktime.js.map +1 -1
  318. package/package.json +2 -1
@@ -1,34 +1,123 @@
1
1
  import { compareRarity, REFORGES } from '../constants/reforges.js';
2
2
  import { Stat } from '../constants/stats.js';
3
- import { UpgradeAction, UpgradeCategory, UpgradeReason, } from '../constants/upgrades.js';
3
+ import { getQueryStats, UpgradeAction, UpgradeCategory, UpgradeReason, } from '../constants/upgrades.js';
4
+ import { effectsToSummaries } from '../effects/summary.js';
4
5
  import { GemRarity } from '../fortune/item.js';
6
+ import { getLotusToBlossomPieceBonus } from '../fortune/lotuspiecebonus.js';
7
+ import { gemSlotDeltaEffectSummaries } from '../items/sources/gems.js';
8
+ import { reforgeEffects } from '../items/sources/reforges.js';
5
9
  import { FARMING_TOOLS } from '../items/tools.js';
6
10
  import { getGemRarityName, getNextGemRarity, getPeridotFortune, getPeridotGemFortune } from '../util/gems.js';
7
11
  import { nextRarity, previousRarity } from '../util/itemstats.js';
8
12
  import { getUpgradeableEnchants } from './enchantupgrades.js';
9
- import { getFakeItem } from './itemregistry.js';
13
+ import { getItemInfo } from './itemcatalog.js';
14
+ import { getItemScopedConflictKey } from './upgradekeys.js';
10
15
  function getPieceBonus(upgradeable) {
11
16
  const fn = upgradeable.getPieceBonus;
12
17
  return typeof fn === 'function' ? fn.call(upgradeable) : 0;
13
18
  }
19
+ function getBaseStats(info, options) {
20
+ const stats = { ...(info.baseStats ?? {}) };
21
+ const computed = info.computedStats?.(options ?? {}) ?? {};
22
+ for (const stat of Object.values(Stat)) {
23
+ const value = computed[stat];
24
+ if (value !== undefined) {
25
+ stats[stat] = (stats[stat] ?? 0) + value;
26
+ }
27
+ }
28
+ return stats;
29
+ }
30
+ function getFakeUpgradeableOfSameKind(upgradeable, info) {
31
+ if (!info)
32
+ return undefined;
33
+ const c = upgradeable.constructor;
34
+ return c.fakeItem?.(info, upgradeable.options);
35
+ }
36
+ function createInfoFake(info) {
37
+ if (!info)
38
+ return undefined;
39
+ const getStat = (stat) => getBaseStats(info)[stat] ?? 0;
40
+ const item = {
41
+ name: info.name,
42
+ skyblockId: info.skyblockId,
43
+ attributes: {},
44
+ enchantments: {},
45
+ };
46
+ const fake = {
47
+ item,
48
+ info,
49
+ options: undefined,
50
+ recombobulated: false,
51
+ rarity: info.maxRarity,
52
+ reforge: undefined,
53
+ reforgeStats: undefined,
54
+ fortune: 0,
55
+ getFortune() {
56
+ return getStat(Stat.FarmingFortune);
57
+ },
58
+ getStat(stat) {
59
+ return getStat(stat);
60
+ },
61
+ getStats() {
62
+ const result = {};
63
+ for (const stat of Object.values(Stat)) {
64
+ const value = getStat(stat);
65
+ if (value > 0)
66
+ result[stat] = value;
67
+ }
68
+ return result;
69
+ },
70
+ getUpgrades() {
71
+ return [];
72
+ },
73
+ getItemUpgrade() {
74
+ return info.upgrade;
75
+ },
76
+ getLastItemUpgrade() {
77
+ return undefined;
78
+ },
79
+ getProgress() {
80
+ return [];
81
+ },
82
+ };
83
+ fake.fortune = fake.getFortune();
84
+ return fake;
85
+ }
86
+ function getRequestedStats(stats) {
87
+ return stats && stats.length > 0 ? stats : [Stat.FarmingFortune];
88
+ }
89
+ export function getReforgeEffectSummaries(upgradeable, reforgeId, stats, sourceName) {
90
+ return effectsToSummaries(reforgeEffects(reforgeId, upgradeable.rarity, sourceName), getRequestedStats(stats));
91
+ }
92
+ export function getCurrentReforgeEffectSummaries(upgradeable, stats) {
93
+ const reforgeId = upgradeable.item.attributes?.modifier;
94
+ if (!reforgeId)
95
+ return [];
96
+ return getReforgeEffectSummaries(upgradeable, reforgeId, stats);
97
+ }
14
98
  export function getItemUpgrades(upgradeable, options) {
99
+ const stats = getQueryStats(options);
15
100
  const { deadEnd, upgrade } = getSelfFortuneUpgrade(upgradeable, options) ?? {};
16
101
  if (deadEnd)
17
102
  return [upgrade];
18
103
  const upgrades = [];
19
104
  upgrades.push(upgrade);
20
105
  upgrades.push(getUpgradeableRarityUpgrade(upgradeable));
21
- upgrades.push(...getUpgradeableEnchants(upgradeable, options?.stat ?? Stat.FarmingFortune));
106
+ for (const stat of stats) {
107
+ upgrades.push(...getUpgradeableEnchants(upgradeable, stat));
108
+ }
22
109
  upgrades.push(...getUpgradeableGems(upgradeable));
23
- upgrades.push(...getUpgradeableReforges(upgradeable, options?.stat ? [options.stat] : undefined));
110
+ upgrades.push(...getUpgradeableReforges(upgradeable, stats));
24
111
  return upgrades.filter((u) => u);
25
112
  }
26
113
  export function getSelfFortuneUpgrade(upgradeable, options) {
27
114
  const nextItem = upgradeable.getItemUpgrade();
28
115
  const deadEnd = nextItem && nextItem.reason == UpgradeReason.DeadEnd;
29
- const { info: nextInfo, fake: nextFake } = getUpgradeableInfo(nextItem?.id);
116
+ const { info: nextInfo } = getUpgradeableInfo(nextItem?.id);
117
+ const nextFake = getFakeUpgradeableOfSameKind(upgradeable, nextInfo);
118
+ const slot = upgradeable.info.slot;
30
119
  if (deadEnd && nextInfo) {
31
- const nextStats = nextFake?.getStats() ?? {};
120
+ const nextStats = nextFake?.getStats() ?? getBaseStats(nextInfo, upgradeable.options);
32
121
  const currentStats = upgradeable.getStats();
33
122
  const deltaStats = {};
34
123
  for (const stat of Object.values(Stat)) {
@@ -40,7 +129,7 @@ export function getSelfFortuneUpgrade(upgradeable, options) {
40
129
  deadEnd: true,
41
130
  upgrade: {
42
131
  title: nextInfo.name,
43
- increase: nextFake?.getFortune() ?? 0,
132
+ increase: nextFake?.getFortune() ?? deltaStats[Stat.FarmingFortune] ?? 0,
44
133
  stats: deltaStats,
45
134
  wiki: nextInfo.wiki,
46
135
  action: UpgradeAction.Purchase,
@@ -58,20 +147,22 @@ export function getSelfFortuneUpgrade(upgradeable, options) {
58
147
  name: upgradeable.item.name,
59
148
  skyblockId: upgradeable.item.skyblockId,
60
149
  newSkyblockId: nextInfo.skyblockId,
150
+ slot,
61
151
  },
62
152
  meta: {
63
153
  type: 'buy_item',
64
154
  id: nextInfo.skyblockId,
65
155
  },
66
- conflictKey: `item_tier:${nextInfo.skyblockId}`,
156
+ group: nextItem.group,
157
+ conflictKey: getItemScopedConflictKey(upgradeable, `item_tier:${nextInfo.skyblockId}`),
67
158
  },
68
159
  };
69
160
  }
70
161
  else if (nextItem && nextInfo && !(nextItem.reason === UpgradeReason.Situational && !nextItem.preferred)) {
71
162
  // For item upgrades, compare base stats only (not total fortune which includes reforge/enchants)
72
163
  // This ensures the delta accurately represents what changes when upgrading the item itself
73
- const currentBaseStats = upgradeable.info.baseStats ?? {};
74
- const nextBaseStats = nextInfo.baseStats ?? {};
164
+ const currentBaseStats = getBaseStats(upgradeable.info, upgradeable.options);
165
+ const nextBaseStats = getBaseStats(nextInfo, upgradeable.options);
75
166
  const deltaStats = {};
76
167
  for (const stat of Object.values(Stat)) {
77
168
  const delta = (nextBaseStats[stat] ?? 0) - (currentBaseStats[stat] ?? 0);
@@ -79,18 +170,16 @@ export function getSelfFortuneUpgrade(upgradeable, options) {
79
170
  deltaStats[stat] = delta;
80
171
  }
81
172
  let increase = deltaStats[Stat.FarmingFortune] ?? 0;
82
- if (options?.stat && options.stat !== Stat.FarmingFortune) {
83
- increase += deltaStats[options.stat] ?? 0;
173
+ const stats = getQueryStats(options);
174
+ for (const stat of stats) {
175
+ if (stat !== Stat.FarmingFortune)
176
+ increase += deltaStats[stat] ?? 0;
84
177
  }
85
- // Lotus -> Blossom equipment upgrades also increase the "Piece Bonus" fortune.
86
- // This bonus is encoded in the item lore (e.g. "Piece Bonus: +15☘") and scales up on Blossom gear.
87
- if (upgradeable.item.skyblockId?.startsWith('LOTUS_') && nextInfo.skyblockId?.startsWith('BLOSSOM_')) {
88
- const currentBonus = getPieceBonus(upgradeable);
89
- if (currentBonus > 0) {
90
- const blossomBonus = currentBonus * 1.5;
91
- increase += blossomBonus - currentBonus;
92
- deltaStats[Stat.FarmingFortune] = increase;
93
- }
178
+ const currentPieceBonus = getPieceBonus(upgradeable);
179
+ const upgradedPieceBonus = getLotusToBlossomPieceBonus(upgradeable.item.skyblockId, nextInfo.skyblockId, currentPieceBonus);
180
+ if (upgradedPieceBonus !== undefined) {
181
+ increase += upgradedPieceBonus - currentPieceBonus;
182
+ deltaStats[Stat.FarmingFortune] = increase;
94
183
  }
95
184
  // Account for gem rarity changes when the item's base rarity increases
96
185
  // This applies to any item with gems (armor, equipment, etc.)
@@ -154,6 +243,7 @@ export function getSelfFortuneUpgrade(upgradeable, options) {
154
243
  name: upgradeable.item.name,
155
244
  skyblockId: upgradeable.item.skyblockId,
156
245
  newSkyblockId: nextInfo.skyblockId,
246
+ slot,
157
247
  },
158
248
  meta: {
159
249
  type: 'buy_item',
@@ -162,7 +252,8 @@ export function getSelfFortuneUpgrade(upgradeable, options) {
162
252
  ? undefined
163
253
  : (upgradeable.item.uuid ?? undefined),
164
254
  },
165
- conflictKey: `item_tier:${nextItem.id}`,
255
+ group: nextItem.group,
256
+ conflictKey: getItemScopedConflictKey(upgradeable, `item_tier:${nextItem.id}`),
166
257
  },
167
258
  };
168
259
  }
@@ -184,16 +275,8 @@ export function getLastToolUpgrade(tool) {
184
275
  return item;
185
276
  }
186
277
  export function getUpgradeableInfo(skyblockId) {
187
- if (!skyblockId)
188
- return { info: undefined, fake: undefined };
189
- const fake = getFakeItem(skyblockId);
190
- if (fake) {
191
- return {
192
- info: fake.info,
193
- fake: fake,
194
- };
195
- }
196
- return { info: undefined, fake: undefined };
278
+ const info = getItemInfo(skyblockId);
279
+ return { info, fake: createInfoFake(info) };
197
280
  }
198
281
  export function getNextItemUpgradeableTo(upgradeable, options) {
199
282
  const upgrade = upgradeable.getItemUpgrade();
@@ -250,7 +333,7 @@ export function getUpgradeableRarityUpgrade(upgradeable) {
250
333
  id: 'rarity_upgrades',
251
334
  value: 1,
252
335
  },
253
- conflictKey: 'recombobulate',
336
+ conflictKey: getItemScopedConflictKey(upgradeable, 'recombobulate'),
254
337
  };
255
338
  // Gemstone fortune increases with rarity
256
339
  // Calculate the difference in fortune between the current and next rarity
@@ -285,11 +368,12 @@ export function getUpgradeableRarityUpgrade(upgradeable) {
285
368
  return result;
286
369
  }
287
370
  export function getUpgradeableReforges(upgradeable, stats) {
288
- const primaryStat = stats?.[0] ?? Stat.FarmingFortune;
371
+ const requestedStats = getRequestedStats(stats);
372
+ const primaryStat = requestedStats[0] ?? Stat.FarmingFortune;
289
373
  const currentPrimary = upgradeable.reforgeStats?.stats?.[primaryStat] ?? 0;
290
374
  const currentStats = upgradeable.reforgeStats?.stats ?? {};
291
375
  const result = [];
292
- for (const reforge of Object.values(REFORGES)) {
376
+ for (const [reforgeId, reforge] of Object.entries(REFORGES)) {
293
377
  // Skip if the reforge doesn't apply to the item or is currently applied
294
378
  if (!upgradeable.type ||
295
379
  !reforge ||
@@ -303,10 +387,14 @@ export function getUpgradeableReforges(upgradeable, stats) {
303
387
  const tier = reforge.tiers[upgradeable.rarity];
304
388
  if (!tier || !tier.stats)
305
389
  continue;
390
+ const effects = getReforgeEffectSummaries(upgradeable, reforgeId, requestedStats);
306
391
  const nextPrimary = tier.stats?.[primaryStat] ?? 0;
307
392
  // Skip if the reforge doesn't improve the selected stat
308
- if (nextPrimary <= currentPrimary)
393
+ if (nextPrimary <= currentPrimary &&
394
+ !requestedStats.some((stat) => (tier.stats?.[stat] ?? 0) > (currentStats?.[stat] ?? 0)) &&
395
+ effects.length === 0) {
309
396
  continue;
397
+ }
310
398
  const deltaStats = {};
311
399
  for (const stat of Object.values(Stat)) {
312
400
  const before = currentStats?.[stat] ?? 0;
@@ -320,9 +408,10 @@ export function getUpgradeableReforges(upgradeable, stats) {
320
408
  title: 'Reforge to ' + reforge.name,
321
409
  increase,
322
410
  stats: deltaStats,
411
+ effects: effects.length > 0 ? effects : undefined,
323
412
  action: UpgradeAction.Apply,
324
413
  category: UpgradeCategory.Reforge,
325
- conflictKey: 'reforge',
414
+ conflictKey: getItemScopedConflictKey(upgradeable, 'reforge'),
326
415
  wiki: reforge.wiki,
327
416
  onto: {
328
417
  name: upgradeable.item.name,
@@ -354,6 +443,8 @@ export function getUpgradeableGems(upgradeable) {
354
443
  if (!peridotSlots || peridotSlots.length < 1)
355
444
  return [];
356
445
  const result = [];
446
+ const multiplier = getGemStatMultiplier(upgradeable);
447
+ const gemSourceName = `${upgradeable.item.name} (Gems)`;
357
448
  // Add entries for applying missing gems
358
449
  for (let i = 0; i < peridotSlots.length; i++) {
359
450
  const slot = peridotSlots[i];
@@ -383,12 +474,15 @@ export function getUpgradeableGems(upgradeable) {
383
474
  }
384
475
  }
385
476
  }
477
+ const increase = +(getPeridotGemFortune(upgradeable.rarity, GemRarity.Fine) * multiplier).toFixed(2);
478
+ const effects = gemSlotDeltaEffectSummaries(slotId, upgradeable.rarity, null, GemRarity.Fine, gemSourceName, [Stat.FarmingFortune], multiplier);
386
479
  result.push({
387
480
  title: 'Fine Peridot Gemstone',
388
- increase: getPeridotGemFortune(upgradeable.rarity, GemRarity.Fine),
481
+ increase,
389
482
  stats: {
390
- [Stat.FarmingFortune]: getPeridotGemFortune(upgradeable.rarity, GemRarity.Fine),
483
+ [Stat.FarmingFortune]: increase,
391
484
  },
485
+ effects: effects.length > 0 ? effects : undefined,
392
486
  cost: cost,
393
487
  onto: {
394
488
  name: upgradeable.item.name,
@@ -396,7 +490,7 @@ export function getUpgradeableGems(upgradeable) {
396
490
  },
397
491
  action: UpgradeAction.Apply,
398
492
  category: UpgradeCategory.Gem,
399
- conflictKey: `gem:${slotId}:${GemRarity.Fine}`,
493
+ conflictKey: getItemScopedConflictKey(upgradeable, `gem:${slotId}:${GemRarity.Fine}`),
400
494
  meta: {
401
495
  type: 'gem',
402
496
  slot: slotId,
@@ -429,9 +523,10 @@ export function getUpgradeableGems(upgradeable) {
429
523
  // Start at Fine if the gem is null (not applied)
430
524
  // Flawed and Rough gems are not really worth applying
431
525
  const nextGem = gemRarity === null ? GemRarity.Fine : getNextGemRarity(gemRarity);
432
- const currentFortune = getPeridotGemFortune(upgradeable.rarity, gemRarity);
433
- const nextFortune = getPeridotGemFortune(upgradeable.rarity, nextGem);
526
+ const currentFortune = +(getPeridotGemFortune(upgradeable.rarity, gemRarity) * multiplier).toFixed(2);
527
+ const nextFortune = +(getPeridotGemFortune(upgradeable.rarity, nextGem) * multiplier).toFixed(2);
434
528
  if (nextFortune > currentFortune) {
529
+ const effects = gemSlotDeltaEffectSummaries(slotId, upgradeable.rarity, gemRarity, nextGem, gemSourceName, [Stat.FarmingFortune], multiplier);
435
530
  result.push({
436
531
  title: getGemRarityName(nextGem) + ' Peridot Gemstone',
437
532
  cost: {
@@ -447,9 +542,10 @@ export function getUpgradeableGems(upgradeable) {
447
542
  stats: {
448
543
  [Stat.FarmingFortune]: nextFortune - currentFortune,
449
544
  },
545
+ effects: effects.length > 0 ? effects : undefined,
450
546
  action: UpgradeAction.Apply,
451
547
  category: UpgradeCategory.Gem,
452
- conflictKey: `gem:${slotId}:${nextGem}`,
548
+ conflictKey: getItemScopedConflictKey(upgradeable, `gem:${slotId}:${nextGem}`),
453
549
  meta: {
454
550
  type: 'gem',
455
551
  slot: slotId,
@@ -461,6 +557,9 @@ export function getUpgradeableGems(upgradeable) {
461
557
  }
462
558
  return result;
463
559
  }
560
+ function getGemStatMultiplier(upgradeable) {
561
+ return upgradeable.constructor.name === 'FarmingAccessory' ? 0.5 : 1;
562
+ }
464
563
  function meetsGemSlotRequirements(upgradeable, slot) {
465
564
  if (!slot)
466
565
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"upgrades.js","sourceRoot":"","sources":["../../src/upgrades/upgrades.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrades.js","sourceRoot":"","sources":["../../src/upgrades/upgrades.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAIN,aAAa,EAGb,aAAa,EACb,eAAe,EAEf,aAAa,GACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAI5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAwB,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC9G,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,SAAS,aAAa,CAAC,WAAwB;IAC9C,MAAM,EAAE,GAAI,WAA2D,CAAC,aAAa,CAAC;IACtF,OAAO,OAAO,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,YAAY,CAAC,IAAqB,EAAE,OAAuB;IACnE,MAAM,KAAK,GAAkC,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;IAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IAE3D,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;QAC1C,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,4BAA4B,CAAC,WAAwB,EAAE,IAAsB;IACrF,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAE5B,MAAM,CAAC,GAAG,WAAW,CAAC,WAErB,CAAC;IACF,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,cAAc,CAAC,IAAsB;IAC7C,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAE5B,MAAM,OAAO,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG;QACZ,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,EAAE;KAChB,CAAC;IACF,MAAM,IAAI,GAAG;QACZ,IAAI;QACJ,IAAI;QACJ,OAAO,EAAE,SAAS;QAClB,cAAc,EAAE,KAAK;QACrB,MAAM,EAAE,IAAI,CAAC,SAAS;QACtB,OAAO,EAAE,SAAS;QAClB,YAAY,EAAE,SAAS;QACvB,OAAO,EAAE,CAAC;QACV,UAAU;YACT,OAAO,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,CAAC,IAAU;YACjB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QACD,QAAQ;YACP,MAAM,MAAM,GAAkC,EAAE,CAAC;YACjD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC5B,IAAI,KAAK,GAAG,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACrC,CAAC;YACD,OAAO,MAAM,CAAC;QACf,CAAC;QACD,WAAW;YACV,OAAO,EAAE,CAAC;QACX,CAAC;QACD,cAAc;YACb,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;QACD,kBAAkB;YACjB,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,WAAW;YACV,OAAO,EAAE,CAAC;QACX,CAAC;KAC6B,CAAC;IAEhC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IACjC,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAuB;IACjD,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,yBAAyB,CACxC,WAAwB,EACxB,SAAiB,EACjB,KAAuB,EACvB,UAAmB;IAEnB,OAAO,kBAAkB,CAAC,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;AAChH,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,WAAwB,EAAE,KAAuB;IACjG,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC;IACxD,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAC1B,OAAO,yBAAyB,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAAwB,EAAE,OAA0B;IACnF,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,qBAAqB,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/E,IAAI,OAAO;QAAE,OAAO,CAAC,OAAO,CAAqB,CAAC;IAElD,MAAM,QAAQ,GAAG,EAAoC,CAAC;IAEtD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC,CAAC;IACxD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAE7D,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAqB,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,qBAAqB,CACpC,WAAwB,EACxB,OAA0B;IAE1B,MAAM,QAAQ,GAAG,WAAW,CAAC,cAAc,EAAE,CAAC;IAC9C,MAAM,OAAO,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,aAAa,CAAC,OAAO,CAAC;IAErE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,4BAA4B,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACrE,MAAM,IAAI,GAAI,WAAW,CAAC,IAA8C,CAAC,IAAI,CAAC;IAE9E,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,QAAQ,EAAE,QAAQ,EAAE,IAAI,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;QACtF,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAkC,EAAE,CAAC;QACrD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACjE,IAAI,KAAK,KAAK,CAAC;gBAAE,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC3C,CAAC;QACD,OAAO;YACN,OAAO,EAAE,IAAI;YACb,OAAO,EAAE;gBACR,KAAK,EAAE,QAAQ,CAAC,IAAI;gBACpB,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBACxE,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,MAAM,EAAE,aAAa,CAAC,QAAQ;gBAC9B,QAAQ,EAAE,QAAQ,CAAC,UAAU;gBAC7B,QAAQ,EAAE,eAAe,CAAC,IAAI;gBAC9B,IAAI,EAAE;oBACL,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI;wBACpB,KAAK,EAAE;4BACN,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;yBACxB;qBACD,CAAC;iBACF;gBACD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,IAAI,EAAE;oBACL,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI;oBAC3B,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU;oBACvC,aAAa,EAAE,QAAQ,CAAC,UAAU;oBAClC,IAAI;iBACJ;gBACD,IAAI,EAAE;oBACL,IAAI,EAAE,UAAU;oBAChB,EAAE,EAAE,QAAQ,CAAC,UAAU;iBACvB;gBACD,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,WAAW,EAAE,wBAAwB,CAAC,WAAW,EAAE,aAAa,QAAQ,CAAC,UAAU,EAAE,CAAC;aAC7D;SAC1B,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,IAAI,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,aAAa,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5G,iGAAiG;QACjG,2FAA2F;QAC3F,MAAM,gBAAgB,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;QAC7E,MAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;QAElE,MAAM,UAAU,GAAkC,EAAE,CAAC;QACrD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACzE,IAAI,KAAK,KAAK,CAAC;gBAAE,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC3C,CAAC;QACD,IAAI,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAEpD,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,IAAI,IAAI,KAAK,IAAI,CAAC,cAAc;gBAAE,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,iBAAiB,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,kBAAkB,GAAG,2BAA2B,CACrD,WAAW,CAAC,IAAI,CAAC,UAAU,EAC3B,QAAQ,CAAC,UAAU,EACnB,iBAAiB,CACjB,CAAC;QACF,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACtC,QAAQ,IAAI,kBAAkB,GAAG,iBAAiB,CAAC;YACnD,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC;QAC5C,CAAC;QAED,uEAAuE;QACvE,8DAA8D;QAC9D,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3B,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC;YACzC,MAAM,iBAAiB,GAAG,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;YACnG,MAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC;YAEhF,kDAAkD;YAClD,MAAM,cAAc,GAAG,aAAa,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;YACvE,IAAI,cAAc,GAAG,cAAc,CAAC;YACpC,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;gBACxB,2EAA2E;gBAC3E,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;YAC7C,CAAC;YAED,IAAI,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC7E,MAAM,cAAc,GAAG,iBAAiB,CAAC,cAAc,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC3E,QAAQ,IAAI,cAAc,GAAG,iBAAiB,CAAC;gBAC/C,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC;YAC5C,CAAC;QACF,CAAC;QAED,yEAAyE;QACzE,gGAAgG;QAChG,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC;YACzC,MAAM,iBAAiB,GAAG,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;YACnG,MAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC;YAEhF,kDAAkD;YAClD,MAAM,cAAc,GAAG,aAAa,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;YACvE,IAAI,cAAc,GAAG,cAAc,CAAC;YACpC,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;gBACxB,2EAA2E;gBAC3E,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;YAC7C,CAAC;YAED,IAAI,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtD,MAAM,qBAAqB,GAC1B,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAC/E,MAAM,kBAAkB,GACvB,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAChF,QAAQ,IAAI,kBAAkB,GAAG,qBAAqB,CAAC;gBACvD,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC;YAC5C,CAAC;QACF,CAAC;QAED,OAAO;YACN,OAAO,EAAE,KAAK;YACd,OAAO,EAAE;gBACR,KAAK,EAAE,QAAQ,CAAC,IAAI;gBACpB,QAAQ;gBACR,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO;gBACtG,QAAQ,EAAE,QAAQ,CAAC,MAAM,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;gBACjF,QAAQ,EAAE,eAAe,CAAC,IAAI;gBAC9B,IAAI,EAAE;oBACL,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI;wBACpB,KAAK,EAAE;4BACN,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;yBAChB;qBACD,CAAC;iBACF;gBACD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,IAAI,EAAE;oBACL,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI;oBAC3B,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU;oBACvC,aAAa,EAAE,QAAQ,CAAC,UAAU;oBAClC,IAAI;iBACJ;gBACD,IAAI,EAAE;oBACL,IAAI,EAAE,UAAU;oBAChB,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,QAAQ,EACP,QAAQ,CAAC,MAAM,KAAK,aAAa,CAAC,WAAW;wBAC5C,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;iBACxC;gBACD,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,WAAW,EAAE,wBAAwB,CAAC,WAAW,EAAE,aAAa,QAAQ,CAAC,EAAE,EAAE,CAAC;aACrD;SAC1B,CAAC;IACH,CAAC;AACF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAqB;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,IAAI,IAAI,GAAG,OAAO,CAAC;IACnB,IAAI,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAE5B,OAAO,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,aAAa,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACvG,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QACpB,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IAEhD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAmB;IAIrD,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IACrC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,wBAAwB,CACvC,WAAwB,EACxB,OAAiD;IAEjD,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,EAAE,CAAC;IAC7C,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAE5B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,wBAAwB,CACvC,WAAwB,EACxB,OAAiD;IAEjD,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,EAAE,CAAC;IAC7C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,aAAa,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAEvG,IAAI,IAAI,GAAG,OAAO,CAAC;IACnB,IAAI,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAE5B,OAAO,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,aAAa,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACvG,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QACpB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAE5B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,WAAwB;IACnE,6CAA6C;IAC7C,IAAI,WAAW,CAAC,cAAc;QAAE,OAAO;IAEvC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IAClC,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAE5C,MAAM,MAAM,GAAG;QACd,KAAK,EAAE,gBAAgB,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI;QAC/C,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE;YACN,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;SACxB;QACD,MAAM,EAAE,aAAa,CAAC,aAAa;QACnC,QAAQ,EAAE,eAAe,CAAC,MAAM;QAChC,YAAY,EAAE,EAAiC;QAC/C,IAAI,EAAE;YACL,KAAK,EAAE;gBACN,mBAAmB,EAAE,CAAC;aACtB;SACD;QACD,IAAI,EAAE;YACL,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI;YAC3B,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU;SACvC;QACD,IAAI,EAAE;YACL,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS;YAC5C,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE,iBAAiB;YACrB,KAAK,EAAE,CAAC;SACR;QACD,WAAW,EAAE,wBAAwB,CAAC,WAAW,EAAE,eAAe,CAAC;KAC1C,CAAC;IAE3B,yCAAyC;IACzC,0EAA0E;IAE1E,MAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/E,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAE9D,IAAI,WAAW,GAAG,cAAc,EAAE,CAAC;QAClC,MAAM,CAAC,QAAQ,IAAI,WAAW,GAAG,cAAc,CAAC;QAChD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;YACxB,IAAI,EAAE,8BAA8B;YACpC,OAAO,EAAE,WAAW,GAAG,cAAc;SACrC,CAAC,CAAC;IACJ,CAAC;IAED,wCAAwC;IACxC,0EAA0E;IAC1E,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAC1B,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QAC3C,OAAO,MAAM,CAAC;IACf,CAAC;IAED,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/C,MAAM,cAAc,GAAG,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACjF,MAAM,WAAW,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAE5E,IAAI,WAAW,GAAG,cAAc,EAAE,CAAC;QAClC,MAAM,CAAC,QAAQ,IAAI,WAAW,GAAG,cAAc,CAAC;QAChD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;YACxB,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,WAAW,GAAG,cAAc;SACrC,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAE3C,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,WAAwB,EAAE,KAAc;IAC9E,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC;IAC7D,MAAM,cAAc,GAAG,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC;IAC3D,MAAM,MAAM,GAAqB,EAAE,CAAC;IAEpC,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7D,wEAAwE;QACxE,IACC,CAAC,WAAW,CAAC,IAAI;YACjB,CAAC,OAAO;YACR,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC;YAC7C,OAAO,KAAK,WAAW,CAAC,OAAO,EAC9B,CAAC;YACF,SAAS;QACV,CAAC;QACD,8FAA8F;QAC9F,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE;YAAE,SAAS;QACjC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,SAAS;QACnC,MAAM,OAAO,GAAG,yBAAyB,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QAElF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACnD,wDAAwD;QACxD,IACC,WAAW,IAAI,cAAc;YAC7B,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACvF,OAAO,CAAC,MAAM,KAAK,CAAC,EACnB,CAAC;YACF,SAAS;QACV,CAAC;QAED,MAAM,UAAU,GAAkC,EAAE,CAAC;QACrD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;YAC5B,IAAI,IAAI,KAAK,CAAC;gBAAE,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACzC,CAAC;QACD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAEtD,MAAM,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI;YACnC,QAAQ;YACR,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACjD,MAAM,EAAE,aAAa,CAAC,KAAK;YAC3B,QAAQ,EAAE,eAAe,CAAC,OAAO;YACjC,WAAW,EAAE,wBAAwB,CAAC,WAAW,EAAE,SAAS,CAAC;YAC7D,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE;gBACL,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI;gBAC3B,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU;aACvC;YACD,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE;gBACtB,CAAC,CAAC;oBACA,KAAK,EAAE;wBACN,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;qBACrB;oBACD,SAAS,EAAE,IAAI,CAAC,IAAI;wBACnB,CAAC,CAAC;4BACA,KAAK,EAAE,IAAI,CAAC,IAAI;yBAChB;wBACF,CAAC,CAAC,SAAS;iBACZ;gBACF,CAAC,CAAC,SAAS;YACZ,IAAI,EAAE;gBACL,IAAI,EAAE,SAAS;gBACf,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;gBACnD,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS;aAC5C;SACD,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,WAAwB;IAC1D,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IACzF,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAExD,MAAM,MAAM,GAAG,EAAsB,CAAC;IACtC,MAAM,UAAU,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;IAExD,wCAAwC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,IAAI,CAAC;YAAE,SAAS;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,CAAC,CAAC;QAExC,sCAAsC;QACtC,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,SAAS;YAAE,SAAS;QAE7D,qFAAqF;QACrF,sDAAsD;QAEtD,MAAM,IAAI,GAAG;YACZ,KAAK,EAAE;gBACN,gBAAgB,EAAE,CAAC;aACnB;SACc,CAAC;QAEjB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACnC,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC9B,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;oBAClB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtF,CAAC;qBAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACtC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;gBACxD,CAAC;YACF,CAAC;QACF,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrG,MAAM,OAAO,GAAG,2BAA2B,CAC1C,MAAM,EACN,WAAW,CAAC,MAAM,EAClB,IAAI,EACJ,SAAS,CAAC,IAAI,EACd,aAAa,EACb,CAAC,IAAI,CAAC,cAAc,CAAC,EACrB,UAAU,CACV,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,uBAAuB;YAC9B,QAAQ;YACR,KAAK,EAAE;gBACN,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,QAAQ;aAC/B;YACD,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACjD,IAAI,EAAE,IAAI;YACV,IAAI,EAAE;gBACL,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI;gBAC3B,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU;aACvC;YACD,MAAM,EAAE,aAAa,CAAC,KAAK;YAC3B,QAAQ,EAAE,eAAe,CAAC,GAAG;YAC7B,WAAW,EAAE,wBAAwB,CAAC,WAAW,EAAE,OAAO,MAAM,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACrF,IAAI,EAAE;gBACL,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,SAAS,CAAC,IAAI;gBACrB,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS;aAC5C;SACD,CAAC,CAAC;IACJ,CAAC;IAED,0CAA0C;IAC1C,8CAA8C;IAC9C,0GAA0G;IAC1G,8DAA8D;IAC9D,6EAA6E;IAC7E,mDAAmD;IAEnD,4CAA4C;IAC5C,4DAA4D;IAC5D,6FAA6F;IAC7F,6FAA6F;IAC7F,oDAAoD;IAEpD,0CAA0C;IAC1C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,SAAS;QAE5C,MAAM,SAAS,GAAG,GAAuB,CAAC;QAE1C,IAAI,SAAS,KAAK,SAAS;YAAE,SAAS;QACtC,IAAI,SAAS,KAAK,SAAS,CAAC,OAAO;YAAE,SAAS;QAE9C,iDAAiD;QACjD,sDAAsD;QACtD,MAAM,OAAO,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAClF,MAAM,cAAc,GAAG,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtG,MAAM,WAAW,GAAG,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAEjG,IAAI,WAAW,GAAG,cAAc,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,2BAA2B,CAC1C,MAAM,EACN,WAAW,CAAC,MAAM,EAClB,SAAS,EACT,OAAO,EACP,aAAa,EACb,CAAC,IAAI,CAAC,cAAc,CAAC,EACrB,UAAU,CACV,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,mBAAmB;gBACtD,IAAI,EAAE;oBACL,KAAK,EAAE;wBACN,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,CAAC;qBAC7D;iBACD;gBACD,IAAI,EAAE;oBACL,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI;oBAC3B,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU;iBACvC;gBACD,QAAQ,EAAE,WAAW,GAAG,cAAc;gBACtC,KAAK,EAAE;oBACN,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,WAAW,GAAG,cAAc;iBACnD;gBACD,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;gBACjD,MAAM,EAAE,aAAa,CAAC,KAAK;gBAC3B,QAAQ,EAAE,eAAe,CAAC,GAAG;gBAC7B,WAAW,EAAE,wBAAwB,CAAC,WAAW,EAAE,OAAO,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC9E,IAAI,EAAE;oBACL,IAAI,EAAE,KAAK;oBACX,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,OAAO;oBACd,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS;iBAC5C;aACD,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAwB;IACrD,OAAO,WAAW,CAAC,WAAW,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,wBAAwB,CAChC,WAAwB,EACxB,IAAyE;IAEzE,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IACvC,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5D,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;YAAE,SAAS;QAEvC,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,EAAE,GAAG,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAE/C,QAAQ,GAAG,CAAC,QAAQ,EAAE,CAAC;YACtB,KAAK,wBAAwB;gBAC5B,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACvC,MAAM;YACP,KAAK,cAAc;gBAClB,IAAI,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACtC,MAAM;YACP,KAAK,QAAQ;gBACZ,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACxC,MAAM;YACP,KAAK,qBAAqB;gBACzB,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACvC,MAAM;YACP,KAAK,WAAW;gBACf,IAAI,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACtC,MAAM;YACP;gBACC,6CAA6C;gBAC7C,MAAM;QACR,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,YAAoB;IAC9D,MAAM,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IACvF,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;AAC9C,CAAC"}
@@ -1,6 +1,4 @@
1
1
  import { Stat } from '../constants/stats.js';
2
- import type { FortuneUpgrade } from '../constants/upgrades.js';
2
+ import { type FortuneUpgrade, type StatQueryOptions } from '../constants/upgrades.js';
3
3
  export declare function getUpgradeDelta(upgrade: FortuneUpgrade, stat: Stat): number;
4
- export declare function filterAndSortUpgrades(upgrades: FortuneUpgrade[], options?: {
5
- stat?: Stat;
6
- }): FortuneUpgrade[];
4
+ export declare function filterAndSortUpgrades(upgrades: FortuneUpgrade[], options?: StatQueryOptions): FortuneUpgrade[];
@@ -1,5 +1,6 @@
1
1
  import { CROP_INFO } from '../constants/crops.js';
2
2
  import { Stat } from '../constants/stats.js';
3
+ import { getQueryStats } from '../constants/upgrades.js';
3
4
  const CROP_FORTUNE_STATS = new Set(Object.values(CROP_INFO).map((c) => c.fortuneType));
4
5
  export function getUpgradeDelta(upgrade, stat) {
5
6
  if (stat === Stat.FarmingFortune) {
@@ -15,24 +16,43 @@ export function getUpgradeDelta(upgrade, stat) {
15
16
  }
16
17
  return upgrade.stats?.[stat] ?? 0;
17
18
  }
19
+ function upgradeHasRelatedEffect(upgrade, stats) {
20
+ return upgrade.effects?.some((effect) => effect.relatedStats?.some((related) => stats.includes(related))) ?? false;
21
+ }
22
+ function getUpgradeScore(upgrade, stats) {
23
+ return stats.reduce((sum, stat) => sum + getUpgradeDelta(upgrade, stat), 0);
24
+ }
18
25
  export function filterAndSortUpgrades(upgrades, options) {
19
- const stat = options?.stat ?? Stat.FarmingFortune;
20
- if (stat === Stat.FarmingFortune) {
26
+ const stats = getQueryStats(options);
27
+ const primaryStat = stats[0] ?? Stat.FarmingFortune;
28
+ const explicitMultiStat = options?.stats !== undefined && options.stats.length > 0;
29
+ if (!explicitMultiStat && primaryStat === Stat.FarmingFortune) {
21
30
  upgrades.sort((a, b) => (b.increase ?? 0) - (a.increase ?? 0));
22
31
  return upgrades;
23
32
  }
24
33
  const filtered = upgrades.filter((u) => {
25
- const delta = getUpgradeDelta(u, stat);
26
- if (delta !== 0)
34
+ if (stats.some((stat) => getUpgradeDelta(u, stat) !== 0))
35
+ return true;
36
+ if (upgradeHasRelatedEffect(u, stats))
37
+ return true;
38
+ const upgradeStats = u.stats;
39
+ if (upgradeStats && stats.some((stat) => Object.hasOwn(upgradeStats, stat)))
27
40
  return true;
28
41
  // For crop-fortune views, keep 0-delta FarmingFortune upgrades so the UI can
29
42
  // still show upgrade trees (e.g. Dedication) when milestones/context are missing.
30
- if (CROP_FORTUNE_STATS.has(stat) && u.stats && Object.hasOwn(u.stats, Stat.FarmingFortune)) {
43
+ if (stats.some((stat) => CROP_FORTUNE_STATS.has(stat)) &&
44
+ u.stats &&
45
+ Object.hasOwn(u.stats, Stat.FarmingFortune)) {
31
46
  return true;
32
47
  }
33
48
  return false;
34
49
  });
35
- filtered.sort((a, b) => getUpgradeDelta(b, stat) - getUpgradeDelta(a, stat));
50
+ filtered.sort((a, b) => {
51
+ const primaryDelta = getUpgradeDelta(b, primaryStat) - getUpgradeDelta(a, primaryStat);
52
+ if (primaryDelta !== 0)
53
+ return primaryDelta;
54
+ return getUpgradeScore(b, stats) - getUpgradeScore(a, stats);
55
+ });
36
56
  return filtered;
37
57
  }
38
58
  //# sourceMappingURL=upgradeutils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"upgradeutils.js","sourceRoot":"","sources":["../../src/upgrades/upgradeutils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAG7C,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;AAEvF,MAAM,UAAU,eAAe,CAAC,OAAuB,EAAE,IAAU;IAClE,IAAI,IAAI,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtE,CAAC;IAED,sDAAsD;IACtD,8EAA8E;IAC9E,0CAA0C;IAC1C,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;QACnF,OAAO,SAAS,GAAG,YAAY,CAAC;IACjC,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAA0B,EAAE,OAAyB;IAC1F,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC;IAClD,IAAI,IAAI,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/D,OAAO,QAAQ,CAAC;IACjB,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7B,6EAA6E;QAC7E,kFAAkF;QAClF,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YAC5F,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7E,OAAO,QAAQ,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"upgradeutils.js","sourceRoot":"","sources":["../../src/upgrades/upgradeutils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare const BESTIARY_KILL_BRACKETS: {
2
+ readonly 1: readonly [20, 40, 60, 100, 200, 400, 800, 1400, 2000, 3000, 6000, 12000, 20000, 30000, 40000, 50000, 60000, 72000, 86000, 100000, 200000, 400000, 600000, 800000, 1000000];
3
+ readonly 2: readonly [5, 10, 15, 25, 50, 100, 200, 350, 500, 750, 1500, 3000, 5000, 7500, 10000, 12500, 15000, 18000, 21500, 25000, 50000, 100000, 150000, 200000, 250000];
4
+ readonly 3: readonly [4, 8, 12, 16, 20, 40, 80, 140, 200, 300, 600, 1200, 2000, 3000, 4000, 5000, 6000, 7200, 8600, 10000, 20000, 40000, 60000, 80000, 100000];
5
+ readonly 4: readonly [2, 4, 6, 10, 15, 20, 25, 35, 50, 75, 150, 300, 500, 750, 1000, 1350, 1650, 2000, 2500, 3000, 5000, 10000, 15000, 20000, 25000];
6
+ readonly 5: readonly [1, 2, 3, 5, 7, 10, 15, 20, 30, 60, 120, 200, 300, 400, 500, 600, 720, 860, 1000, 2000, 4000, 6000, 8000, 10000];
7
+ readonly 6: readonly [1, 2, 3, 5, 7, 9, 14, 17, 21, 25, 50, 80, 125, 175, 250, 325, 425, 525, 625, 750, 1500, 3000, 4500, 6000, 7500];
8
+ readonly 7: readonly [1, 2, 3, 5, 7, 9, 11, 14, 17, 20, 30, 40, 55, 75, 100, 150, 200, 275, 375, 500, 1000, 1500, 2000, 2500, 3000];
9
+ };
10
+ export declare function getBestiaryLevel(kills: number, bracket: keyof typeof BESTIARY_KILL_BRACKETS, maxTier: number): number;
@@ -0,0 +1,41 @@
1
+ export const BESTIARY_KILL_BRACKETS = {
2
+ 1: [
3
+ 20, 40, 60, 100, 200, 400, 800, 1_400, 2_000, 3_000, 6_000, 12_000, 20_000, 30_000, 40_000, 50_000, 60_000,
4
+ 72_000, 86_000, 100_000, 200_000, 400_000, 600_000, 800_000, 1_000_000,
5
+ ],
6
+ 2: [
7
+ 5, 10, 15, 25, 50, 100, 200, 350, 500, 750, 1_500, 3_000, 5_000, 7_500, 10_000, 12_500, 15_000, 18_000, 21_500,
8
+ 25_000, 50_000, 100_000, 150_000, 200_000, 250_000,
9
+ ],
10
+ 3: [
11
+ 4, 8, 12, 16, 20, 40, 80, 140, 200, 300, 600, 1_200, 2_000, 3_000, 4_000, 5_000, 6_000, 7_200, 8_600, 10_000,
12
+ 20_000, 40_000, 60_000, 80_000, 100_000,
13
+ ],
14
+ 4: [
15
+ 2, 4, 6, 10, 15, 20, 25, 35, 50, 75, 150, 300, 500, 750, 1_000, 1_350, 1_650, 2_000, 2_500, 3_000, 5_000,
16
+ 10_000, 15_000, 20_000, 25_000,
17
+ ],
18
+ 5: [
19
+ 1, 2, 3, 5, 7, 10, 15, 20, 30, 60, 120, 200, 300, 400, 500, 600, 720, 860, 1_000, 2_000, 4_000, 6_000, 8_000,
20
+ 10_000,
21
+ ],
22
+ 6: [
23
+ 1, 2, 3, 5, 7, 9, 14, 17, 21, 25, 50, 80, 125, 175, 250, 325, 425, 525, 625, 750, 1_500, 3_000, 4_500, 6_000,
24
+ 7_500,
25
+ ],
26
+ 7: [
27
+ 1, 2, 3, 5, 7, 9, 11, 14, 17, 20, 30, 40, 55, 75, 100, 150, 200, 275, 375, 500, 1_000, 1_500, 2_000, 2_500,
28
+ 3_000,
29
+ ],
30
+ };
31
+ export function getBestiaryLevel(kills, bracket, maxTier) {
32
+ const brackets = BESTIARY_KILL_BRACKETS[bracket];
33
+ for (let i = brackets.length - 1; i >= 0; i--) {
34
+ const bracketKills = brackets[i];
35
+ if (kills >= bracketKills) {
36
+ return Math.min(i + 1, maxTier);
37
+ }
38
+ }
39
+ return 0;
40
+ }
41
+ //# sourceMappingURL=bestiary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bestiary.js","sourceRoot":"","sources":["../../src/util/bestiary.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,11 @@ import { Stat } from '../constants/stats.js';
4
4
  import type { PlayerOptions } from '../player/playeroptions.js';
5
5
  export declare function getFortuneFromEnchant(level: number, enchant: FarmingEnchant, options?: PlayerOptions, crop?: Crop): number;
6
6
  export declare function getStatFromEnchant(level: number, enchant: FarmingEnchant, stat: Stat, options?: PlayerOptions, crop?: Crop): number;
7
+ /**
8
+ * Like {@link getStatFromEnchant}, but when no crop is provided, evaluates
9
+ * `cropComputed` contributions with `undefined` so non-crop-bound items (e.g.
10
+ * armor with Sunset) can resolve per-level deltas without a representative crop.
11
+ */
12
+ export declare function getOptimisticStatFromEnchant(level: number, enchant: FarmingEnchant, stat: Stat, options?: PlayerOptions, crop?: Crop): number;
7
13
  export declare function getMaxFortuneFromEnchant(enchant: FarmingEnchant, options?: PlayerOptions, crop?: Crop): number;
8
14
  export declare function getMaxStatFromEnchant(enchant: FarmingEnchant, stat: Stat, options?: PlayerOptions, crop?: Crop): number;