@shipload/sdk 1.0.0-next.60 → 1.0.0-next.62

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.
@@ -1016,6 +1016,54 @@
1016
1016
  ],
1017
1017
  "blendWeights": []
1018
1018
  },
1019
+ {
1020
+ "outputItemId": 10208,
1021
+ "outputMass": 4800000,
1022
+ "inputs": [
1023
+ {
1024
+ "itemId": 10006,
1025
+ "quantity": 1000
1026
+ },
1027
+ {
1028
+ "itemId": 10003,
1029
+ "quantity": 1000
1030
+ },
1031
+ {
1032
+ "itemId": 10007,
1033
+ "quantity": 1000
1034
+ }
1035
+ ],
1036
+ "statSlots": [
1037
+ {
1038
+ "sources": []
1039
+ },
1040
+ {
1041
+ "sources": [
1042
+ {
1043
+ "inputIndex": 1,
1044
+ "statIndex": 0
1045
+ }
1046
+ ]
1047
+ },
1048
+ {
1049
+ "sources": [
1050
+ {
1051
+ "inputIndex": 0,
1052
+ "statIndex": 0
1053
+ }
1054
+ ]
1055
+ },
1056
+ {
1057
+ "sources": [
1058
+ {
1059
+ "inputIndex": 2,
1060
+ "statIndex": 0
1061
+ }
1062
+ ]
1063
+ }
1064
+ ],
1065
+ "blendWeights": []
1066
+ },
1019
1067
  {
1020
1068
  "outputItemId": 10209,
1021
1069
  "outputMass": 1900000,
@@ -1689,7 +1737,7 @@
1689
1737
  "sourceSubclass": 10210
1690
1738
  },
1691
1739
  {
1692
- "outputItemId": 20001,
1740
+ "outputItemId": 11001,
1693
1741
  "outputMass": 4800,
1694
1742
  "inputs": [
1695
1743
  {
@@ -1726,7 +1774,7 @@
1726
1774
  "blendWeights": []
1727
1775
  },
1728
1776
  {
1729
- "outputItemId": 20002,
1777
+ "outputItemId": 11002,
1730
1778
  "outputMass": 4800,
1731
1779
  "inputs": [
1732
1780
  {
@@ -1775,7 +1823,7 @@
1775
1823
  "blendWeights": []
1776
1824
  },
1777
1825
  {
1778
- "outputItemId": 20003,
1826
+ "outputItemId": 11003,
1779
1827
  "outputMass": 4800,
1780
1828
  "inputs": [
1781
1829
  {
@@ -1812,7 +1860,7 @@
1812
1860
  "blendWeights": []
1813
1861
  },
1814
1862
  {
1815
- "outputItemId": 20004,
1863
+ "outputItemId": 11004,
1816
1864
  "outputMass": 4800,
1817
1865
  "inputs": [
1818
1866
  {
@@ -1853,7 +1901,7 @@
1853
1901
  "blendWeights": []
1854
1902
  },
1855
1903
  {
1856
- "outputItemId": 20005,
1904
+ "outputItemId": 11005,
1857
1905
  "outputMass": 4800,
1858
1906
  "inputs": [
1859
1907
  {
@@ -1894,7 +1942,7 @@
1894
1942
  "blendWeights": []
1895
1943
  },
1896
1944
  {
1897
- "outputItemId": 20006,
1945
+ "outputItemId": 11006,
1898
1946
  "outputMass": 4800,
1899
1947
  "inputs": [
1900
1948
  {
@@ -1931,7 +1979,7 @@
1931
1979
  "blendWeights": []
1932
1980
  },
1933
1981
  {
1934
- "outputItemId": 20007,
1982
+ "outputItemId": 11007,
1935
1983
  "outputMass": 4800,
1936
1984
  "inputs": [
1937
1985
  {
@@ -1968,7 +2016,7 @@
1968
2016
  "blendWeights": []
1969
2017
  },
1970
2018
  {
1971
- "outputItemId": 20008,
2019
+ "outputItemId": 11008,
1972
2020
  "outputMass": 4800,
1973
2021
  "inputs": [
1974
2022
  {
@@ -1997,7 +2045,7 @@
1997
2045
  "blendWeights": []
1998
2046
  },
1999
2047
  {
2000
- "outputItemId": 20009,
2048
+ "outputItemId": 11009,
2001
2049
  "outputMass": 4800,
2002
2050
  "inputs": [
2003
2051
  {
@@ -2046,7 +2094,7 @@
2046
2094
  "blendWeights": []
2047
2095
  },
2048
2096
  {
2049
- "outputItemId": 20010,
2097
+ "outputItemId": 11010,
2050
2098
  "outputMass": 4800,
2051
2099
  "inputs": [
2052
2100
  {
@@ -2087,11 +2135,11 @@
2087
2135
  "blendWeights": []
2088
2136
  },
2089
2137
  {
2090
- "outputItemId": 20100,
2138
+ "outputItemId": 11100,
2091
2139
  "outputMass": 1536000,
2092
2140
  "inputs": [
2093
2141
  {
2094
- "itemId": 20003,
2142
+ "itemId": 11003,
2095
2143
  "quantity": 600
2096
2144
  },
2097
2145
  {
@@ -2128,11 +2176,11 @@
2128
2176
  "blendWeights": []
2129
2177
  },
2130
2178
  {
2131
- "outputItemId": 20101,
2179
+ "outputItemId": 11101,
2132
2180
  "outputMass": 1536000,
2133
2181
  "inputs": [
2134
2182
  {
2135
- "itemId": 20004,
2183
+ "itemId": 11004,
2136
2184
  "quantity": 600
2137
2185
  },
2138
2186
  {
@@ -2169,15 +2217,15 @@
2169
2217
  "blendWeights": []
2170
2218
  },
2171
2219
  {
2172
- "outputItemId": 20102,
2220
+ "outputItemId": 11102,
2173
2221
  "outputMass": 1536000,
2174
2222
  "inputs": [
2175
2223
  {
2176
- "itemId": 20005,
2224
+ "itemId": 11005,
2177
2225
  "quantity": 300
2178
2226
  },
2179
2227
  {
2180
- "itemId": 20002,
2228
+ "itemId": 11002,
2181
2229
  "quantity": 300
2182
2230
  },
2183
2231
  {
@@ -2226,11 +2274,11 @@
2226
2274
  "blendWeights": []
2227
2275
  },
2228
2276
  {
2229
- "outputItemId": 20103,
2277
+ "outputItemId": 11103,
2230
2278
  "outputMass": 1536000,
2231
2279
  "inputs": [
2232
2280
  {
2233
- "itemId": 20007,
2281
+ "itemId": 11007,
2234
2282
  "quantity": 600
2235
2283
  },
2236
2284
  {
@@ -2267,15 +2315,15 @@
2267
2315
  "blendWeights": []
2268
2316
  },
2269
2317
  {
2270
- "outputItemId": 20104,
2318
+ "outputItemId": 11104,
2271
2319
  "outputMass": 1536000,
2272
2320
  "inputs": [
2273
2321
  {
2274
- "itemId": 20009,
2322
+ "itemId": 11009,
2275
2323
  "quantity": 300
2276
2324
  },
2277
2325
  {
2278
- "itemId": 20006,
2326
+ "itemId": 11006,
2279
2327
  "quantity": 300
2280
2328
  },
2281
2329
  {
@@ -2312,15 +2360,84 @@
2312
2360
  "blendWeights": []
2313
2361
  },
2314
2362
  {
2315
- "outputItemId": 20106,
2363
+ "outputItemId": 11105,
2364
+ "outputMass": 1536000,
2365
+ "inputs": [
2366
+ {
2367
+ "itemId": 11001,
2368
+ "quantity": 300
2369
+ },
2370
+ {
2371
+ "itemId": 11002,
2372
+ "quantity": 300
2373
+ },
2374
+ {
2375
+ "itemId": 10105,
2376
+ "quantity": 1
2377
+ }
2378
+ ],
2379
+ "statSlots": [
2380
+ {
2381
+ "sources": [
2382
+ {
2383
+ "inputIndex": 0,
2384
+ "statIndex": 0
2385
+ },
2386
+ {
2387
+ "inputIndex": 2,
2388
+ "statIndex": 0
2389
+ }
2390
+ ]
2391
+ },
2392
+ {
2393
+ "sources": [
2394
+ {
2395
+ "inputIndex": 0,
2396
+ "statIndex": 1
2397
+ },
2398
+ {
2399
+ "inputIndex": 2,
2400
+ "statIndex": 1
2401
+ }
2402
+ ]
2403
+ },
2404
+ {
2405
+ "sources": [
2406
+ {
2407
+ "inputIndex": 1,
2408
+ "statIndex": 0
2409
+ },
2410
+ {
2411
+ "inputIndex": 2,
2412
+ "statIndex": 2
2413
+ }
2414
+ ]
2415
+ },
2416
+ {
2417
+ "sources": [
2418
+ {
2419
+ "inputIndex": 1,
2420
+ "statIndex": 1
2421
+ },
2422
+ {
2423
+ "inputIndex": 2,
2424
+ "statIndex": 3
2425
+ }
2426
+ ]
2427
+ }
2428
+ ],
2429
+ "blendWeights": []
2430
+ },
2431
+ {
2432
+ "outputItemId": 11106,
2316
2433
  "outputMass": 1536000,
2317
2434
  "inputs": [
2318
2435
  {
2319
- "itemId": 20004,
2436
+ "itemId": 11004,
2320
2437
  "quantity": 300
2321
2438
  },
2322
2439
  {
2323
- "itemId": 20010,
2440
+ "itemId": 11010,
2324
2441
  "quantity": 300
2325
2442
  },
2326
2443
  {
@@ -2369,15 +2486,15 @@
2369
2486
  "blendWeights": []
2370
2487
  },
2371
2488
  {
2372
- "outputItemId": 20107,
2489
+ "outputItemId": 11107,
2373
2490
  "outputMass": 1536000,
2374
2491
  "inputs": [
2375
2492
  {
2376
- "itemId": 20004,
2493
+ "itemId": 11004,
2377
2494
  "quantity": 300
2378
2495
  },
2379
2496
  {
2380
- "itemId": 20009,
2497
+ "itemId": 11009,
2381
2498
  "quantity": 300
2382
2499
  },
2383
2500
  {
@@ -2402,15 +2519,84 @@
2402
2519
  "blendWeights": []
2403
2520
  },
2404
2521
  {
2405
- "outputItemId": 20110,
2522
+ "outputItemId": 11108,
2523
+ "outputMass": 1536000,
2524
+ "inputs": [
2525
+ {
2526
+ "itemId": 11003,
2527
+ "quantity": 300
2528
+ },
2529
+ {
2530
+ "itemId": 11007,
2531
+ "quantity": 300
2532
+ },
2533
+ {
2534
+ "itemId": 10108,
2535
+ "quantity": 1
2536
+ }
2537
+ ],
2538
+ "statSlots": [
2539
+ {
2540
+ "sources": [
2541
+ {
2542
+ "inputIndex": 0,
2543
+ "statIndex": 0
2544
+ },
2545
+ {
2546
+ "inputIndex": 2,
2547
+ "statIndex": 0
2548
+ }
2549
+ ]
2550
+ },
2551
+ {
2552
+ "sources": [
2553
+ {
2554
+ "inputIndex": 0,
2555
+ "statIndex": 1
2556
+ },
2557
+ {
2558
+ "inputIndex": 2,
2559
+ "statIndex": 1
2560
+ }
2561
+ ]
2562
+ },
2563
+ {
2564
+ "sources": [
2565
+ {
2566
+ "inputIndex": 1,
2567
+ "statIndex": 0
2568
+ },
2569
+ {
2570
+ "inputIndex": 2,
2571
+ "statIndex": 2
2572
+ }
2573
+ ]
2574
+ },
2575
+ {
2576
+ "sources": [
2577
+ {
2578
+ "inputIndex": 1,
2579
+ "statIndex": 1
2580
+ },
2581
+ {
2582
+ "inputIndex": 2,
2583
+ "statIndex": 3
2584
+ }
2585
+ ]
2586
+ }
2587
+ ],
2588
+ "blendWeights": []
2589
+ },
2590
+ {
2591
+ "outputItemId": 11110,
2406
2592
  "outputMass": 1536000,
2407
2593
  "inputs": [
2408
2594
  {
2409
- "itemId": 20006,
2595
+ "itemId": 11006,
2410
2596
  "quantity": 300
2411
2597
  },
2412
2598
  {
2413
- "itemId": 20008,
2599
+ "itemId": 11008,
2414
2600
  "quantity": 300
2415
2601
  },
2416
2602
  {
@@ -2447,15 +2633,15 @@
2447
2633
  "blendWeights": []
2448
2634
  },
2449
2635
  {
2450
- "outputItemId": 20200,
2636
+ "outputItemId": 11200,
2451
2637
  "outputMass": 3100000,
2452
2638
  "inputs": [
2453
2639
  {
2454
- "itemId": 20001,
2640
+ "itemId": 11001,
2455
2641
  "quantity": 600
2456
2642
  },
2457
2643
  {
2458
- "itemId": 20008,
2644
+ "itemId": 11008,
2459
2645
  "quantity": 600
2460
2646
  },
2461
2647
  {
@@ -2517,27 +2703,27 @@
2517
2703
  "sourceSubclass": 10200
2518
2704
  },
2519
2705
  {
2520
- "outputItemId": 20212,
2706
+ "outputItemId": 11212,
2521
2707
  "outputMass": 4320000,
2522
2708
  "inputs": [
2523
2709
  {
2524
- "itemId": 20001,
2710
+ "itemId": 11001,
2525
2711
  "quantity": 200
2526
2712
  },
2527
2713
  {
2528
- "itemId": 20008,
2714
+ "itemId": 11008,
2529
2715
  "quantity": 200
2530
2716
  },
2531
2717
  {
2532
- "itemId": 20007,
2718
+ "itemId": 11007,
2533
2719
  "quantity": 200
2534
2720
  },
2535
2721
  {
2536
- "itemId": 20003,
2722
+ "itemId": 11003,
2537
2723
  "quantity": 200
2538
2724
  },
2539
2725
  {
2540
- "itemId": 20006,
2726
+ "itemId": 11006,
2541
2727
  "quantity": 200
2542
2728
  },
2543
2729
  {
@@ -2611,31 +2797,31 @@
2611
2797
  "sourceSubclass": 10211
2612
2798
  },
2613
2799
  {
2614
- "outputItemId": 20213,
2800
+ "outputItemId": 11213,
2615
2801
  "outputMass": 5760000,
2616
2802
  "inputs": [
2617
2803
  {
2618
- "itemId": 20005,
2804
+ "itemId": 11005,
2619
2805
  "quantity": 150
2620
2806
  },
2621
2807
  {
2622
- "itemId": 20002,
2808
+ "itemId": 11002,
2623
2809
  "quantity": 150
2624
2810
  },
2625
2811
  {
2626
- "itemId": 20010,
2812
+ "itemId": 11010,
2627
2813
  "quantity": 150
2628
2814
  },
2629
2815
  {
2630
- "itemId": 20009,
2816
+ "itemId": 11009,
2631
2817
  "quantity": 150
2632
2818
  },
2633
2819
  {
2634
- "itemId": 20004,
2820
+ "itemId": 11004,
2635
2821
  "quantity": 150
2636
2822
  },
2637
2823
  {
2638
- "itemId": 20212,
2824
+ "itemId": 11212,
2639
2825
  "quantity": 1
2640
2826
  }
2641
2827
  ],
@@ -2702,34 +2888,34 @@
2702
2888
  }
2703
2889
  ],
2704
2890
  "blendWeights": [],
2705
- "sourceSubclass": 20212
2891
+ "sourceSubclass": 11212
2706
2892
  },
2707
2893
  {
2708
- "outputItemId": 20214,
2894
+ "outputItemId": 11214,
2709
2895
  "outputMass": 5760000,
2710
2896
  "inputs": [
2711
2897
  {
2712
- "itemId": 20005,
2898
+ "itemId": 11005,
2713
2899
  "quantity": 150
2714
2900
  },
2715
2901
  {
2716
- "itemId": 20002,
2902
+ "itemId": 11002,
2717
2903
  "quantity": 150
2718
2904
  },
2719
2905
  {
2720
- "itemId": 20010,
2906
+ "itemId": 11010,
2721
2907
  "quantity": 150
2722
2908
  },
2723
2909
  {
2724
- "itemId": 20009,
2910
+ "itemId": 11009,
2725
2911
  "quantity": 150
2726
2912
  },
2727
2913
  {
2728
- "itemId": 20004,
2914
+ "itemId": 11004,
2729
2915
  "quantity": 150
2730
2916
  },
2731
2917
  {
2732
- "itemId": 20212,
2918
+ "itemId": 11212,
2733
2919
  "quantity": 1
2734
2920
  }
2735
2921
  ],
@@ -2796,6 +2982,6 @@
2796
2982
  }
2797
2983
  ],
2798
2984
  "blendWeights": [],
2799
- "sourceSubclass": 20212
2985
+ "sourceSubclass": 11212
2800
2986
  }
2801
2987
  ]
package/src/data/tiers.ts CHANGED
@@ -18,17 +18,20 @@ export function itemTypeCode(id: number): number {
18
18
  }
19
19
  }
20
20
 
21
+ const CRAFTED_BASE = 10000
22
+ const TIER_STRIDE = 1000
23
+
21
24
  export function itemTier(id: number): number {
22
- if (id < 10000) return 0
23
- return Math.floor(id / 10000)
25
+ if (id < CRAFTED_BASE) return 0
26
+ return Math.floor((id - CRAFTED_BASE) / TIER_STRIDE) + 1
24
27
  }
25
28
 
26
29
  export function itemOffset(id: number): number {
27
- return id % 10000
30
+ return id % TIER_STRIDE
28
31
  }
29
32
 
30
33
  export function itemCategory(id: number): CraftedItemCategory {
31
- if (id < 10000) return 'resource'
34
+ if (id < CRAFTED_BASE) return 'resource'
32
35
  const offset = itemOffset(id)
33
36
  if (offset >= 200) return 'entity'
34
37
  if (offset >= 100) return 'module'
@@ -36,10 +39,10 @@ export function itemCategory(id: number): CraftedItemCategory {
36
39
  }
37
40
 
38
41
  export function isRelatedItem(a: number, b: number): boolean {
39
- if (a < 10000 || b < 10000) return false
42
+ if (a < CRAFTED_BASE || b < CRAFTED_BASE) return false
40
43
  return itemOffset(a) === itemOffset(b)
41
44
  }
42
45
 
43
46
  export function isCraftedItem(id: number): boolean {
44
- return id >= 10000
47
+ return id >= CRAFTED_BASE
45
48
  }
@@ -207,32 +207,32 @@ export function computeStorageCapabilities(
207
207
  capacity: computeCargoBayCapacity(
208
208
  stats.strength ?? 0,
209
209
  stats.density ?? 0,
210
- stats.hardness ?? 0
210
+ stats.hardness ?? 0,
211
+ tier
211
212
  ),
212
213
  drain: computeCargoBayDrain(stats.cohesion ?? 0, tier),
213
214
  }
214
215
  }
215
216
 
216
- export function computeBatteryCapabilities(stats: Record<string, number>): {
217
+ export function computeBatteryCapabilities(
218
+ stats: Record<string, number>,
219
+ tier: number
220
+ ): {
217
221
  capacity: number
218
222
  } {
219
- const volatility = stats.volatility ?? 0
220
- const thermal = stats.thermal ?? 0
221
- const plasticity = stats.plasticity ?? 0
222
- const insulation = stats.insulation ?? 0
223
-
224
- const statSum = volatility + thermal + plasticity + insulation
225
- return {capacity: 2_500_000 + Math.floor((statSum * 7_500_000) / 3996)}
223
+ return {
224
+ capacity: computeBatteryBankCapacity(
225
+ stats.volatility ?? 0,
226
+ stats.thermal ?? 0,
227
+ stats.plasticity ?? 0,
228
+ stats.insulation ?? 0,
229
+ tier
230
+ ),
231
+ }
226
232
  }
227
233
 
228
234
  import {
229
235
  ITEM_CONTAINER_T1_PACKED,
230
- ITEM_CONTAINER_T2_PACKED,
231
- ITEM_CONSTRUCTION_DOCK_T1_PACKED,
232
- ITEM_EXTRACTOR_T1_PACKED,
233
- ITEM_FACTORY_T1_PACKED,
234
- ITEM_MASS_CATCHER_T1_PACKED,
235
- ITEM_MASS_DRIVER_T1_PACKED,
236
236
  ITEM_SHIP_T1_PACKED,
237
237
  ITEM_WAREHOUSE_T1_PACKED,
238
238
  ITEM_WORKSHOP_T1_PACKED,
@@ -265,6 +265,7 @@ import type {EntitySlot} from '../data/recipes-runtime'
265
265
  import {
266
266
  computeCargoBayCapacity,
267
267
  computeCargoBayDrain,
268
+ computeBatteryBankCapacity,
268
269
  computeHaulerCapacity,
269
270
  computeHaulerDrain,
270
271
  computeTravelDrain,
@@ -296,6 +297,10 @@ export const CRAFTER_SPEED_TIER_PCT = [100, 120, 140, 160, 180, 200, 220, 240, 2
296
297
  export const BUILDER_SPEED_TIER_PCT = [100, 120, 140, 160, 180, 200, 220, 240, 260, 280] as const
297
298
  export const WARP_RANGE_TIER_PCT = [100, 120, 140, 160, 180, 200, 220, 240, 260, 280] as const
298
299
  export const LOADER_THRUST_TIER_PCT = [100, 120, 140, 160, 180, 200, 220, 240, 260, 280] as const
300
+ export const CARGO_BAY_CAPACITY_TIER_PCT = [
301
+ 100, 110, 120, 130, 140, 150, 160, 170, 180, 190,
302
+ ] as const
303
+ export const BATTERY_CAPACITY_TIER_PCT = [100, 110, 120, 130, 140, 150, 160, 170, 180, 190] as const
299
304
 
300
305
  export function moduleTierPct(table: readonly number[], tier: number): number {
301
306
  const clamped = Math.min(Math.max(tier, 1), MODULE_MAX_TIER)
@@ -308,30 +313,26 @@ export function computeGathererYield(str: number, tier: number): number {
308
313
  return Math.floor(((200 + str) * pct) / 100)
309
314
  }
310
315
 
316
+ const BASE_CAPACITY_FN_BY_KIND: Record<string, (stats: Record<string, number>) => number> = {
317
+ warehouse: (stats) => computeWarehouseHullCapabilities(stats).capacity,
318
+ workshop: (stats) => computeWorkshopHullCapabilities(stats).capacity,
319
+ extractor: (stats) => computeContainerCapabilities(stats).capacity,
320
+ factory: (stats) => computeContainerCapabilities(stats).capacity,
321
+ builddock: (stats) => computeContainerCapabilities(stats).capacity,
322
+ mdriver: (stats) => computeContainerCapabilities(stats).capacity,
323
+ mcatcher: (stats) => computeContainerCapabilities(stats).capacity,
324
+ container: (stats) => computeContainerCapabilities(stats).capacity,
325
+ }
326
+
311
327
  export function computeBaseCapacity(itemId: number, stats: Record<string, number>): number {
312
328
  let base: number
313
329
  if (isShipHull(itemId)) {
314
330
  base = computeShipHullCapabilities(stats, itemId).capacity
315
331
  } else {
316
- switch (itemId) {
317
- case ITEM_EXTRACTOR_T1_PACKED:
318
- case ITEM_FACTORY_T1_PACKED:
319
- case ITEM_CONSTRUCTION_DOCK_T1_PACKED:
320
- case ITEM_MASS_DRIVER_T1_PACKED:
321
- case ITEM_MASS_CATCHER_T1_PACKED:
322
- case ITEM_CONTAINER_T1_PACKED:
323
- case ITEM_CONTAINER_T2_PACKED:
324
- base = computeContainerCapabilities(stats).capacity
325
- break
326
- case ITEM_WAREHOUSE_T1_PACKED:
327
- base = computeWarehouseHullCapabilities(stats).capacity
328
- break
329
- case ITEM_WORKSHOP_T1_PACKED:
330
- base = computeWorkshopHullCapabilities(stats).capacity
331
- break
332
- default:
333
- return 0
334
- }
332
+ const kind = getPackedEntityType(itemId)
333
+ const capacityFn = kind ? BASE_CAPACITY_FN_BY_KIND[kind.toString()] : undefined
334
+ if (!capacityFn) return 0
335
+ base = capacityFn(stats)
335
336
  }
336
337
  return applyCapacityTier(base, getItem(itemId).tier)
337
338
  }
@@ -597,7 +598,7 @@ export function computeEntityCapabilities(
597
598
  totalLauncherVelocity = clampUint16(totalLauncherVelocity + caps.velocity)
598
599
  totalLauncherDrain = clampUint16(totalLauncherDrain + caps.drain)
599
600
  } else if (modType === MODULE_BATTERY) {
600
- const caps = computeBatteryCapabilities(decodedStats)
601
+ const caps = computeBatteryCapabilities(decodedStats, item.tier)
601
602
  totalBatteryCapacity += applySlotMultiplierUint32(caps.capacity, amp)
602
603
  }
603
604
  }