@aephia/atlas-kit 0.6.0-next.141 → 0.6.0-next.142

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.
@@ -0,0 +1,101 @@
1
+ import type { FleetShipCountsData, FleetStatsData } from '../internal/c4/fleet.js';
2
+ import type { ShipDefinitionSummary } from '../registry/index.js';
3
+ /** Inputs for projecting a Fleet's stored stats after ship assembly. Pass the
4
+ * whole loaded ships section (`listShipConfigurations`), the current Fleet
5
+ * snapshot (omit it for a newly created, empty Fleet) and the ships to add, one
6
+ * entry per add-ship instruction in submission order, as successive
7
+ * `planAddShipToFleet` Plans would submit them.
8
+ * @example
9
+ * ```ts
10
+ * declare const ctx: SageContext, fleet: FleetSnapshot;
11
+ * const input: FleetCompositionStatsInput = {
12
+ * definitions: await listShipConfigurations(ctx),
13
+ * fleet,
14
+ * additions: [{ shipId: 12, amount: 1n }],
15
+ * };
16
+ * ```
17
+ */
18
+ export interface FleetCompositionStatsInput {
19
+ readonly definitions: readonly Pick<ShipDefinitionSummary, 'id' | 'sizeClass' | 'stats' | 'definitionSequenceId'>[];
20
+ /** A Fleet snapshot, or the same fields from raw Fleet data with
21
+ * `fleetShips` mapped to `{ id: shipId, quantity }`. */
22
+ readonly fleet?: {
23
+ readonly ships: readonly {
24
+ readonly id: number;
25
+ readonly quantity: bigint;
26
+ }[];
27
+ readonly shipCounts: FleetShipCountsData;
28
+ readonly stats: FleetStatsData;
29
+ readonly shipDefinitionsSeqId: number;
30
+ };
31
+ readonly additions: readonly {
32
+ readonly shipId: number;
33
+ readonly amount: bigint;
34
+ }[];
35
+ }
36
+ /** Projected stored Fleet stats after the additions, in the same units as a
37
+ * Fleet's `stats`. `route` says which program path produced them: `new-fleet`
38
+ * starts from an empty Fleet, `stored` builds on the Fleet's stored stats, and
39
+ * `resynchronized` first rebuilds a Fleet on an older ship-definition sequence
40
+ * from the current definitions, as the program does before adding ships.
41
+ * @example
42
+ * ```ts
43
+ * declare const projected: FleetCompositionStats;
44
+ * console.log(projected.route, projected.fleetPoints, projected.stats.cargo.miningRate.value);
45
+ * ```
46
+ */
47
+ export interface FleetCompositionStats {
48
+ readonly route: 'new-fleet' | 'stored' | 'resynchronized';
49
+ readonly definitionSequenceId: number;
50
+ readonly ships: readonly {
51
+ readonly id: number;
52
+ readonly quantity: bigint;
53
+ }[];
54
+ readonly shipCounts: FleetShipCountsData;
55
+ /** XXS 1, XS 4, Small 9, Medium 16, Large 25, Capital 36, Commander 49, Titan 128. */
56
+ readonly fleetPoints: number;
57
+ readonly stats: FleetStatsData;
58
+ toJSON(): unknown;
59
+ }
60
+ /** Projects the stats a Fleet stores after ship assembly, exactly as the program
61
+ * aggregates them; verified against the program's behaviour. Capacities, Fuel
62
+ * and upkeep rates, mining and load rates, crew, AP/HP/SP and damage are added
63
+ * and capped. Subwarp, warp and lane speeds take the lowest value. Maximum warp
64
+ * distance, warp cooldown, warp spool, shield break delay, damage variance,
65
+ * respawn times and scan cooldown take the highest. Stealth, hit, aim and
66
+ * critical values are truncated per-ship averages, which the program rescales
67
+ * on every addition, so one addition of two ships can differ from two
68
+ * additions of one. Repair cost (weighted by hull points) and repair efficiency
69
+ * (weighted by repair ability) are recomputed over every ship aboard.
70
+ *
71
+ * A Fleet on the definitions' sequence builds on its stored stats and counts.
72
+ * One on an older sequence is first rebuilt from the current definitions of
73
+ * the ships aboard, as the program does before adding ships. A missing ship
74
+ * definition, mixed definition sequences, an amount outside 1n-255n or an
75
+ * overflow the program refuses throw `InvalidDerivationInputError`; other
76
+ * inputs are trusted as typed.
77
+ *
78
+ * Character research does not change stored stats: pass the Character's raw
79
+ * speed and cooldown modifiers to the travel helpers at use time. This is not
80
+ * an eligibility check (`planAddShipToFleet` applies ship size, research tags,
81
+ * Fleet size and formation limits), and checks no funding, entitlement or crew
82
+ * provisioning. Current AP, SP and HP are not projected. Read the Fleet back
83
+ * after confirmation; the chain stays authoritative. Requalify after program
84
+ * changes.
85
+ * @example
86
+ * ```ts
87
+ * declare const ctx: SageContext, fleet: FleetSnapshot, character: CharacterSnapshot;
88
+ * const projected = deriveFleetCompositionStats({
89
+ * definitions: await listShipConfigurations(ctx),
90
+ * fleet,
91
+ * additions: [{ shipId: 12, amount: 1n }],
92
+ * });
93
+ * const travel = deriveFleetTravelProfile({
94
+ * stats: projected.stats,
95
+ * subwarpSpeedModifierRaw: character.modifiers.values.subwarpSpeedModifierRaw,
96
+ * });
97
+ * console.log(projected.stats.cargo.miningRate.value, travel.subwarp?.secondsPerAu);
98
+ * ```
99
+ */
100
+ export declare function deriveFleetCompositionStats(input: FleetCompositionStatsInput): FleetCompositionStats;
101
+ //# sourceMappingURL=composition-stats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composition-stats.d.ts","sourceRoot":"","sources":["../../src/fleets/composition-stats.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,WAAW,EAAE,SAAS,IAAI,CACjC,qBAAqB,EACrB,IAAI,GAAG,WAAW,GAAG,OAAO,GAAG,sBAAsB,CACtD,EAAE,CAAC;IACJ;4DACwD;IACxD,QAAQ,CAAC,KAAK,CAAC,EAAE;QACf,QAAQ,CAAC,KAAK,EAAE,SAAS;YACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;YACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;SAC3B,EAAE,CAAC;QACJ,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;QACzC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;QAC/B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;KACvC,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE,SAAS;QAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,EAAE,CAAC;CACL;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,QAAQ,GAAG,gBAAgB,CAAC;IAC1D,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,SAAS;QACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC3B,EAAE,CAAC;IACJ,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,sFAAsF;IACtF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,MAAM,IAAI,OAAO,CAAC;CACnB;AA6OD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,0BAA0B,GAChC,qBAAqB,CAwGvB"}
@@ -0,0 +1,354 @@
1
+ import { InvalidDerivationInputError } from '../client/index.js';
2
+ import { fleetCapacityPoints } from '../internal/c4/fleet-points.js';
3
+ import { attachJsonSerialization } from '../internal/json.js';
4
+ import { freezeResolvedSnapshot } from '../internal/resolved-snapshot.js';
5
+ const U32 = (1n << 32n) - 1n;
6
+ const CONSUMPTION_U26F6 = 50000000n << 6n;
7
+ const sum = (cap) => ({ kind: 'sum', cap });
8
+ const max = { kind: 'max' };
9
+ const speed = { kind: 'speed' };
10
+ const average = { kind: 'average' };
11
+ const checked = (maximum, minimum = 0n) => ({
12
+ kind: 'checked',
13
+ min: minimum,
14
+ max: maximum,
15
+ });
16
+ const damage = (name) => [
17
+ [`damage${name}`, sum(1000000n), 'number'],
18
+ [`damage${name}Variance`, max, 6],
19
+ ];
20
+ // Verified against the program's ship-assembly behaviour.
21
+ const FIELDS = {
22
+ movement: [
23
+ ['subwarpSpeed', speed, 16],
24
+ ['warpSpeed', speed, 16],
25
+ ['warpLaneSpeed', speed, 16],
26
+ ['maxWarpDistance', max, 8],
27
+ ['warpCoolDownSeconds', max, 'number'],
28
+ ['subwarpFuelConsumptionRate', sum(CONSUMPTION_U26F6), 6],
29
+ ['warpFuelConsumptionRate', sum(CONSUMPTION_U26F6), 6],
30
+ ['planetExitFuelAmount', sum(50000000n), 'number'],
31
+ ['warpXpRate', sum(U32), 16],
32
+ ['subwarpXpRate', sum(U32), 16],
33
+ ],
34
+ cargo: [
35
+ ['cargoCapacity', sum(100000000n), 'bigint'],
36
+ ['fuelCapacity', sum(100000000n), 'bigint'],
37
+ ['ammoCapacity', sum(1000000000n), 'bigint'],
38
+ ['ammoConsumptionRate', sum(U32), 14],
39
+ ['foodConsumptionRate', sum(U32), 14],
40
+ ['miningRate', sum(U32), 14],
41
+ ['loadRate', sum(CONSUMPTION_U26F6), 6],
42
+ ],
43
+ combat: [
44
+ ['ap', sum(1000000n), 'number'],
45
+ ['hp', sum(1000000n), 'number'],
46
+ ['sp', sum(1000000n), 'number'],
47
+ ['ammoConsumptionRate', sum(CONSUMPTION_U26F6), 6],
48
+ ['apRegenRate', sum(CONSUMPTION_U26F6), 6],
49
+ ['shieldRechargeRate', sum(CONSUMPTION_U26F6), 6],
50
+ ['repairRate', sum(CONSUMPTION_U26F6), 6],
51
+ ['repairAbility', sum(CONSUMPTION_U26F6), 6],
52
+ ['repairEfficiency', { kind: 'repairEfficiency' }, 6],
53
+ ['repairCost', { kind: 'repairCost' }, 6],
54
+ ['lootRate', sum(1000000n << 6n), 6],
55
+ ['shieldBreakDelaySeconds', max, 'number'],
56
+ ['warpSpoolTimeSeconds', max, 'number'],
57
+ ...[
58
+ 'Kinetic',
59
+ 'Energy',
60
+ 'Emp',
61
+ 'Superchill',
62
+ 'Shockwave',
63
+ 'Graygoo',
64
+ 'Heat',
65
+ 'Bomb',
66
+ ].flatMap(damage),
67
+ ...[
68
+ 'Decoy',
69
+ 'EnergyCapacitor',
70
+ 'FireSuppressor',
71
+ 'Flare',
72
+ 'HealingNanobots',
73
+ 'Mine',
74
+ 'NegativeRemPlating',
75
+ 'WarmingPlates',
76
+ 'FaradayShielding',
77
+ ].map((name) => [`counter${name}`, sum(1000000n), 'number']),
78
+ ['stealthPower', average, 6],
79
+ ['hitChance', average, 6],
80
+ ['aimAbility', average, 6],
81
+ ['critChance', average, 6],
82
+ ['critMultiplier', average, 6],
83
+ ['fuelConsumptionRate', sum(CONSUMPTION_U26F6), 6],
84
+ ['missileDamage', sum(CONSUMPTION_U26F6), 6],
85
+ ['missileFireRate', sum(CONSUMPTION_U26F6), 6],
86
+ ],
87
+ misc: [
88
+ ['requiredCrew', checked(0xffffn), 'number'],
89
+ ['passengerCapacity', checked(0xffffn), 'number'],
90
+ ['respawnTimeWithoutFeeSeconds', max, 'number'],
91
+ ['respawnTimeWithFeeSeconds', max, 'number'],
92
+ ['recoveryFeeRaw', checked((1n << 64n) - 1n), 'bigint'],
93
+ ['scanCoolDownSeconds', max, 16],
94
+ ['scanPower', sum(U32), 6],
95
+ ['scanCost', sum(50000000n), 'number'],
96
+ ['scanBonus', checked((1n << 31n) - 1n, -(1n << 31n)), 16],
97
+ ['lpValue', checked(U32), 'number'],
98
+ ['medallionValue', checked(U32), 'number'],
99
+ ['xpValue', sum(U32), 16],
100
+ ],
101
+ };
102
+ const GROUPS = Object.keys(FIELDS);
103
+ const SIZE_KEYS = {
104
+ 'xx-small': 'xxSmall',
105
+ 'x-small': 'xSmall',
106
+ small: 'small',
107
+ medium: 'medium',
108
+ large: 'large',
109
+ capital: 'capital',
110
+ commander: 'commander',
111
+ titan: 'titan',
112
+ };
113
+ function invalid(field, value) {
114
+ throw new InvalidDerivationInputError(field, value, 'Pass one current ships section from listShipConfigurations and amounts of 1n-255n; the program refuses this addition.');
115
+ }
116
+ function readRaw(stats) {
117
+ const raw = {};
118
+ for (const group of GROUPS) {
119
+ const translated = stats[group];
120
+ raw[group] = Object.fromEntries(FIELDS[group].map(([name]) => {
121
+ const value = translated[name];
122
+ return [name, typeof value === 'object' ? value.raw : BigInt(value)];
123
+ }));
124
+ }
125
+ return raw;
126
+ }
127
+ function emptyRaw() {
128
+ const raw = {};
129
+ for (const group of GROUPS)
130
+ raw[group] = Object.fromEntries(FIELDS[group].map(([name]) => [name, 0n]));
131
+ return raw;
132
+ }
133
+ function combine(target, ship, amount) {
134
+ for (const group of GROUPS)
135
+ for (const [name, rule] of FIELDS[group]) {
136
+ const current = target[group][name];
137
+ const incoming = ship[group][name];
138
+ let next;
139
+ switch (rule.kind) {
140
+ case 'sum':
141
+ next = minimum(current + minimum(incoming * amount, rule.cap), rule.cap);
142
+ break;
143
+ case 'average':
144
+ next = minimum(current + minimum(incoming * amount, CONSUMPTION_U26F6), CONSUMPTION_U26F6);
145
+ break;
146
+ case 'checked': {
147
+ const scaled = incoming * amount;
148
+ next = current + scaled;
149
+ for (const value of [scaled, next])
150
+ if (value < rule.min || value > rule.max)
151
+ invalid(`${group}.${name}`, value);
152
+ break;
153
+ }
154
+ case 'speed':
155
+ next = current === 0n ? incoming : minimum(current, incoming);
156
+ break;
157
+ default:
158
+ next = current > incoming ? current : incoming;
159
+ }
160
+ target[group][name] = next;
161
+ }
162
+ }
163
+ function scaleAverages(stats, factor, divide) {
164
+ if (factor <= 1n)
165
+ return;
166
+ for (const [name, rule] of FIELDS.combat)
167
+ if (rule.kind === 'average') {
168
+ const value = stats.combat[name];
169
+ stats.combat[name] = divide
170
+ ? value / factor
171
+ : minimum(value * factor, CONSUMPTION_U26F6);
172
+ }
173
+ }
174
+ function minimum(left, right) {
175
+ return left < right ? left : right;
176
+ }
177
+ function writeStats(raw) {
178
+ const stats = {};
179
+ for (const group of GROUPS) {
180
+ const values = {};
181
+ for (const [name, , shape] of FIELDS[group]) {
182
+ const value = raw[group][name];
183
+ values[name] =
184
+ shape === 'bigint'
185
+ ? value
186
+ : shape === 'number'
187
+ ? Number(value)
188
+ : { raw: value, value: Number(value) / 2 ** shape };
189
+ }
190
+ stats[group] = values;
191
+ }
192
+ stats.misc.recoveryFeeAtlas = Number(raw.misc.recoveryFeeRaw) / 100_000_000;
193
+ return stats;
194
+ }
195
+ /** Projects the stats a Fleet stores after ship assembly, exactly as the program
196
+ * aggregates them; verified against the program's behaviour. Capacities, Fuel
197
+ * and upkeep rates, mining and load rates, crew, AP/HP/SP and damage are added
198
+ * and capped. Subwarp, warp and lane speeds take the lowest value. Maximum warp
199
+ * distance, warp cooldown, warp spool, shield break delay, damage variance,
200
+ * respawn times and scan cooldown take the highest. Stealth, hit, aim and
201
+ * critical values are truncated per-ship averages, which the program rescales
202
+ * on every addition, so one addition of two ships can differ from two
203
+ * additions of one. Repair cost (weighted by hull points) and repair efficiency
204
+ * (weighted by repair ability) are recomputed over every ship aboard.
205
+ *
206
+ * A Fleet on the definitions' sequence builds on its stored stats and counts.
207
+ * One on an older sequence is first rebuilt from the current definitions of
208
+ * the ships aboard, as the program does before adding ships. A missing ship
209
+ * definition, mixed definition sequences, an amount outside 1n-255n or an
210
+ * overflow the program refuses throw `InvalidDerivationInputError`; other
211
+ * inputs are trusted as typed.
212
+ *
213
+ * Character research does not change stored stats: pass the Character's raw
214
+ * speed and cooldown modifiers to the travel helpers at use time. This is not
215
+ * an eligibility check (`planAddShipToFleet` applies ship size, research tags,
216
+ * Fleet size and formation limits), and checks no funding, entitlement or crew
217
+ * provisioning. Current AP, SP and HP are not projected. Read the Fleet back
218
+ * after confirmation; the chain stays authoritative. Requalify after program
219
+ * changes.
220
+ * @example
221
+ * ```ts
222
+ * declare const ctx: SageContext, fleet: FleetSnapshot, character: CharacterSnapshot;
223
+ * const projected = deriveFleetCompositionStats({
224
+ * definitions: await listShipConfigurations(ctx),
225
+ * fleet,
226
+ * additions: [{ shipId: 12, amount: 1n }],
227
+ * });
228
+ * const travel = deriveFleetTravelProfile({
229
+ * stats: projected.stats,
230
+ * subwarpSpeedModifierRaw: character.modifiers.values.subwarpSpeedModifierRaw,
231
+ * });
232
+ * console.log(projected.stats.cargo.miningRate.value, travel.subwarp?.secondsPerAu);
233
+ * ```
234
+ */
235
+ export function deriveFleetCompositionStats(input) {
236
+ const definitions = new Map();
237
+ let sequence;
238
+ for (const definition of input.definitions) {
239
+ sequence ??= definition.definitionSequenceId;
240
+ if (definition.definitionSequenceId !== sequence)
241
+ invalid('Ship definition sequence', definition.definitionSequenceId);
242
+ definitions.set(definition.id, definition);
243
+ }
244
+ if (sequence === undefined)
245
+ invalid('Ship definitions', 0);
246
+ const rawDefinitions = new Map();
247
+ const lookup = (id) => {
248
+ const definition = definitions.get(id);
249
+ if (definition === undefined)
250
+ invalid('Ship definition id', id);
251
+ let raw = rawDefinitions.get(id);
252
+ if (raw === undefined) {
253
+ raw = readRaw(definition.stats);
254
+ rawDefinitions.set(id, raw);
255
+ }
256
+ return { definition, raw };
257
+ };
258
+ const fleet = input.fleet;
259
+ const ships = new Map(fleet?.ships.map(({ id, quantity }) => [id, quantity]));
260
+ const counts = {
261
+ total: 0n,
262
+ xxSmall: 0n,
263
+ xSmall: 0n,
264
+ small: 0n,
265
+ medium: 0n,
266
+ large: 0n,
267
+ capital: 0n,
268
+ commander: 0n,
269
+ titan: 0n,
270
+ };
271
+ const addCounts = (definition, amount) => {
272
+ const key = SIZE_KEYS[definition.sizeClass];
273
+ counts[key] += amount;
274
+ counts.total += amount;
275
+ if (counts[key] > 0xffffn)
276
+ invalid(`shipCounts.${key}`, counts[key]);
277
+ };
278
+ let route;
279
+ let stats;
280
+ if (fleet === undefined) {
281
+ route = 'new-fleet';
282
+ stats = emptyRaw();
283
+ }
284
+ else {
285
+ stats = readRaw(fleet.stats);
286
+ for (const key of Object.keys(counts))
287
+ counts[key] = BigInt(fleet.shipCounts[key]);
288
+ if (fleet.shipDefinitionsSeqId === sequence)
289
+ route = 'stored';
290
+ else {
291
+ route = 'resynchronized';
292
+ if (ships.size > 0) {
293
+ stats = emptyRaw();
294
+ for (const key of Object.keys(counts))
295
+ counts[key] = 0n;
296
+ for (const [id, quantity] of ships) {
297
+ const { definition, raw } = lookup(id);
298
+ addCounts(definition, quantity);
299
+ combine(stats, raw, quantity);
300
+ }
301
+ scaleAverages(stats, counts.total, true);
302
+ setRepair(stats, ships, lookup);
303
+ }
304
+ }
305
+ }
306
+ for (const { shipId, amount } of input.additions) {
307
+ if (amount < 1n || amount > 255n)
308
+ invalid('Addition amount', amount);
309
+ const { definition, raw } = lookup(shipId);
310
+ scaleAverages(stats, counts.total, false);
311
+ combine(stats, raw, amount);
312
+ addCounts(definition, amount);
313
+ ships.set(shipId, (ships.get(shipId) ?? 0n) + amount);
314
+ scaleAverages(stats, counts.total, true);
315
+ setRepair(stats, ships, lookup);
316
+ }
317
+ const shipCounts = Object.fromEntries(Object.entries(counts).map(([key, value]) => [key, Number(value)]));
318
+ return freezeResolvedSnapshot(attachJsonSerialization({
319
+ route,
320
+ definitionSequenceId: sequence,
321
+ ships: [...ships].map(([id, quantity]) => ({ id, quantity })),
322
+ shipCounts,
323
+ fleetPoints: fleetCapacityPoints([
324
+ shipCounts.xxSmall,
325
+ shipCounts.xSmall,
326
+ shipCounts.small,
327
+ shipCounts.medium,
328
+ shipCounts.large,
329
+ shipCounts.capital,
330
+ shipCounts.commander,
331
+ shipCounts.titan,
332
+ ]),
333
+ stats: writeStats(stats),
334
+ }));
335
+ }
336
+ function setRepair(stats, ships, lookup) {
337
+ let costWeighted = 0n;
338
+ let hullWeight = 0n;
339
+ let efficiencyWeighted = 0n;
340
+ let abilityWeight = 0n;
341
+ for (const [id, quantity] of ships) {
342
+ const { combat } = lookup(id).raw;
343
+ const hull = combat.hp * quantity;
344
+ const ability = combat.repairAbility * quantity;
345
+ hullWeight += hull;
346
+ costWeighted += combat.repairCost * hull;
347
+ abilityWeight += ability;
348
+ efficiencyWeighted += combat.repairEfficiency * ability;
349
+ }
350
+ stats.combat.repairCost = hullWeight === 0n ? 0n : costWeighted / hullWeight;
351
+ stats.combat.repairEfficiency =
352
+ abilityWeight === 0n ? 0n : efficiencyWeighted / abilityWeight;
353
+ }
354
+ //# sourceMappingURL=composition-stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composition-stats.js","sourceRoot":"","sources":["../../src/fleets/composition-stats.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export { deriveFleetWarpLaneEstimate, type FleetWarpLaneEstimate, type FleetWarp
4
4
  export { deriveFleetCoordinateWarpEstimate, type FleetCoordinateWarpEstimate, type FleetCoordinateWarpEstimateInput, } from './coordinate-warp-estimate.js';
5
5
  export { deriveFleetSubwarpEstimate, type FleetSubwarpEstimate, type FleetSubwarpEstimateInput, } from './subwarp-estimate.js';
6
6
  export { deriveFleetMovementCooldown, type FleetMovementCooldownInput, } from './cooldown.js';
7
+ export { deriveFleetCompositionStats, type FleetCompositionStats, type FleetCompositionStatsInput, } from './composition-stats.js';
7
8
  export { deriveFleetTravelProfile, type FleetTravelProfile, type FleetTravelProfileInput, } from './travel-profile.js';
8
9
  import { SageSdkError, type Address, type DiscoveryRequest, type EntityRef, type ReadOptions, type SageContext, type SageSubscription, type SubscriptionDiagnosticEvent, type SubscriptionOptions } from '../client/index.js';
9
10
  import { deriveFleetTimers, interpolateSubwarpPosition, type ResolvedFleetAccountData } from '../internal/fleet.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fleets/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fleets/index.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export { deriveFleetWarpLaneEstimate, } from './warp-lane-estimate.js';
4
4
  export { deriveFleetCoordinateWarpEstimate, } from './coordinate-warp-estimate.js';
5
5
  export { deriveFleetSubwarpEstimate, } from './subwarp-estimate.js';
6
6
  export { deriveFleetMovementCooldown, } from './cooldown.js';
7
+ export { deriveFleetCompositionStats, } from './composition-stats.js';
7
8
  export { deriveFleetTravelProfile, } from './travel-profile.js';
8
9
  import { AccountDecodeError, AccountNotFoundError, ProviderError, SageSdkError, entityRef, } from '../client/index.js';
9
10
  import { assertCanonicalFleetAddress, discoverFleetAccounts, discoverFleetAccountsForGame, fleetAccountDefinition, } from '../internal/c4/fleet.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fleets/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fleets/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Fleet points a set of per-class counts uses. */
2
+ export declare function fleetCapacityPoints(classes: readonly number[]): number;
3
+ //# sourceMappingURL=fleet-points.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-points.d.ts","sourceRoot":"","sources":["../../../src/internal/c4/fleet-points.ts"],"names":[],"mappings":"AAIA,mDAAmD;AACnD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAKtE"}
@@ -0,0 +1,8 @@
1
+ /** Fleet points each ship class uses, by size-class ordinal. Verified against
2
+ * the program's behaviour; a Titan uses 128, not its 81-point combat size. */
3
+ const FLEET_CAPACITY_POINTS = [1, 4, 9, 16, 25, 36, 49, 128];
4
+ /** Fleet points a set of per-class counts uses. */
5
+ export function fleetCapacityPoints(classes) {
6
+ return classes.reduce((total, count, index) => total + count * FLEET_CAPACITY_POINTS[index], 0);
7
+ }
8
+ //# sourceMappingURL=fleet-points.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-points.js","sourceRoot":"","sources":["../../../src/internal/c4/fleet-points.ts"],"names":[],"mappings":"AAAA;8EAC8E;AAC9E,MAAM,qBAAqB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAU,CAAC;AAEtE,mDAAmD;AACnD,MAAM,UAAU,mBAAmB,CAAC,OAA0B;IAC5D,OAAO,OAAO,CAAC,MAAM,CACnB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAE,EACtE,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -3,6 +3,7 @@ import { type SizeClass } from '@staratlas/dev-sage';
3
3
  import type { RawAccount } from '../../client/contracts.js';
4
4
  import type { FleetShipCountsData } from './fleet.js';
5
5
  import type { FleetShipAssemblyIntent, FleetShipAssemblyAccounts } from '../planning/fleet-ship-assembly.js';
6
+ export { fleetCapacityPoints } from './fleet-points.js';
6
7
  /** At most one Titan, and at most two Commanders and Titans together. */
7
8
  export declare const MAX_TITANS_PER_FLEET = 1;
8
9
  export declare const MAX_COMMANDERS_AND_TITANS_PER_FLEET = 2;
@@ -13,8 +14,6 @@ export declare function shipSizeRank(size: (typeof SIZE_ORDER)[number]): number;
13
14
  export declare function shipSizeName(sizeClass: SizeClass): string;
14
15
  /** Per-class ship counts with the selected ships added. */
15
16
  export declare function prospectiveShipCounts(counts: FleetShipCountsData, sizeClass: SizeClass, amount: number): readonly number[];
16
- /** Fleet points a set of per-class counts uses. */
17
- export declare function fleetCapacityPoints(classes: readonly number[]): number;
18
17
  /** Sizes the complete already-validated pinned Fleet encoding, preserving every variable field and zero-valued map entry. */
19
18
  export declare function fleetShipAssemblySize(raw: RawAccount, shipId: number, amount: bigint): number;
20
19
  /** Bytes the Starbase Player grows when assembly re-tags hulls of other
@@ -23,5 +22,4 @@ export declare function fleetShipAssemblySize(raw: RawAccount, shipId: number, a
23
22
  export declare function starbasePlayerEscrowGrowth(raw: RawAccount, shipId: number): number;
24
23
  /** Audited singleton instruction with deployment-tested inert legacy indices. */
25
24
  export declare function addShipToFleetInstruction(input: FleetShipAssemblyIntent, accounts: FleetShipAssemblyAccounts): Instruction;
26
- export {};
27
25
  //# sourceMappingURL=fleet-ship-assembly.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fleet-ship-assembly.d.ts","sourceRoot":"","sources":["../../../src/internal/c4/fleet-ship-assembly.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAEL,KAAK,SAAS,EAMf,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EACV,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,oCAAoC,CAAC;AAI5C,yEAAyE;AACzE,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,mCAAmC,IAAI,CAAC;AAErD,QAAA,MAAM,UAAU,+FASN,CAAC;AAEX,sEAAsE;AACtE,wBAAgB,YAAY,CAAC,IAAI,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAEtE;AAED,iDAAiD;AACjD,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAEzD;AAED,2DAA2D;AAC3D,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,mBAAmB,EAC3B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,GACb,SAAS,MAAM,EAAE,CAanB;AAED,mDAAmD;AACnD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAKtE;AAED,6HAA6H;AAC7H,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,MAAM,CAYR;AACD;;sDAEsD;AACtD,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,MAAM,GACb,MAAM,CAkBR;AACD,iFAAiF;AACjF,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,EAAE,yBAAyB,GAClC,WAAW,CAqBb"}
1
+ {"version":3,"file":"fleet-ship-assembly.d.ts","sourceRoot":"","sources":["../../../src/internal/c4/fleet-ship-assembly.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAEL,KAAK,SAAS,EAMf,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EACV,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,yEAAyE;AACzE,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,mCAAmC,IAAI,CAAC;AAErD,QAAA,MAAM,UAAU,+FASN,CAAC;AAEX,sEAAsE;AACtE,wBAAgB,YAAY,CAAC,IAAI,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAEtE;AAED,iDAAiD;AACjD,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAEzD;AAED,2DAA2D;AAC3D,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,mBAAmB,EAC3B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,GACb,SAAS,MAAM,EAAE,CAanB;AAED,6HAA6H;AAC7H,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,MAAM,CAYR;AACD;;sDAEsD;AACtD,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,MAAM,GACb,MAAM,CAkBR;AACD,iFAAiF;AACjF,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,EAAE,yBAAyB,GAClC,WAAW,CAqBb"}
@@ -2,9 +2,7 @@ import { AccountRole } from '@solana/kit';
2
2
  import { SAGE_PROGRAM_ADDRESS, getAddShipToFleetInstructionDataEncoder, getFleetDecoder, getFleetEncoder, getStarbasePlayerDecoder, getStarbasePlayerEncoder, } from '@staratlas/dev-sage';
3
3
  import { PLAYER_PROFILE_PROGRAM_ADDRESS } from '@staratlas/dev-player-profile';
4
4
  import { AccountDecodeError } from '../../client/errors.js';
5
- /** Fleet points each ship class uses, by size-class ordinal. Verified against
6
- * the program's behaviour; a Titan uses 128, not its 81-point combat size. */
7
- const FLEET_CAPACITY_POINTS = [1, 4, 9, 16, 25, 36, 49, 128];
5
+ export { fleetCapacityPoints } from './fleet-points.js';
8
6
  /** At most one Titan, and at most two Commanders and Titans together. */
9
7
  export const MAX_TITANS_PER_FLEET = 1;
10
8
  export const MAX_COMMANDERS_AND_TITANS_PER_FLEET = 2;
@@ -41,10 +39,6 @@ export function prospectiveShipCounts(counts, sizeClass, amount) {
41
39
  classes[sizeClass] = classes[sizeClass] + amount;
42
40
  return classes;
43
41
  }
44
- /** Fleet points a set of per-class counts uses. */
45
- export function fleetCapacityPoints(classes) {
46
- return classes.reduce((total, count, index) => total + count * FLEET_CAPACITY_POINTS[index], 0);
47
- }
48
42
  /** Sizes the complete already-validated pinned Fleet encoding, preserving every variable field and zero-valued map entry. */
49
43
  export function fleetShipAssemblySize(raw, shipId, amount) {
50
44
  const fleet = getFleetDecoder().decode(raw.data);
@@ -1 +1 @@
1
- {"version":3,"file":"fleet-ship-assembly.js","sourceRoot":"","sources":["../../../src/internal/c4/fleet-ship-assembly.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fleet-ship-assembly.js","sourceRoot":"","sources":["../../../src/internal/c4/fleet-ship-assembly.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aephia/atlas-kit",
3
- "version": "0.6.0-next.141",
3
+ "version": "0.6.0-next.142",
4
4
  "description": "Community-maintained non-custodial TypeScript SDK for Star Atlas SAGE C4.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Aephia contributors",