@aephia/atlas-kit 0.0.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.
- package/LICENSE +202 -0
- package/README.md +124 -0
- package/dist/bindings.d.ts +11 -0
- package/dist/bindings.d.ts.map +1 -0
- package/dist/bindings.js +11 -0
- package/dist/bindings.js.map +1 -0
- package/dist/cargo/actions/index.d.ts +122 -0
- package/dist/cargo/actions/index.d.ts.map +1 -0
- package/dist/cargo/actions/index.js +526 -0
- package/dist/cargo/actions/index.js.map +1 -0
- package/dist/cargo/index.d.ts +77 -0
- package/dist/cargo/index.d.ts.map +1 -0
- package/dist/cargo/index.js +102 -0
- package/dist/cargo/index.js.map +1 -0
- package/dist/claim-stakes/index.d.ts +64 -0
- package/dist/claim-stakes/index.d.ts.map +1 -0
- package/dist/claim-stakes/index.js +97 -0
- package/dist/claim-stakes/index.js.map +1 -0
- package/dist/client/context.d.ts +21 -0
- package/dist/client/context.d.ts.map +1 -0
- package/dist/client/context.js +1374 -0
- package/dist/client/context.js.map +1 -0
- package/dist/client/contracts.d.ts +671 -0
- package/dist/client/contracts.d.ts.map +1 -0
- package/dist/client/contracts.js +2 -0
- package/dist/client/contracts.js.map +1 -0
- package/dist/client/deployments.d.ts +3 -0
- package/dist/client/deployments.d.ts.map +1 -0
- package/dist/client/deployments.js +2 -0
- package/dist/client/deployments.js.map +1 -0
- package/dist/client/errors.d.ts +227 -0
- package/dist/client/errors.d.ts.map +1 -0
- package/dist/client/errors.js +288 -0
- package/dist/client/errors.js.map +1 -0
- package/dist/client/index.d.ts +7 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +5 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/lifecycle.d.ts +4 -0
- package/dist/client/lifecycle.d.ts.map +1 -0
- package/dist/client/lifecycle.js +10 -0
- package/dist/client/lifecycle.js.map +1 -0
- package/dist/client/provider-errors.d.ts +9 -0
- package/dist/client/provider-errors.d.ts.map +1 -0
- package/dist/client/provider-errors.js +12 -0
- package/dist/client/provider-errors.js.map +1 -0
- package/dist/client/reconciliation.d.ts +10 -0
- package/dist/client/reconciliation.d.ts.map +1 -0
- package/dist/client/reconciliation.js +9 -0
- package/dist/client/reconciliation.js.map +1 -0
- package/dist/client/refs.d.ts +23 -0
- package/dist/client/refs.d.ts.map +1 -0
- package/dist/client/refs.js +12 -0
- package/dist/client/refs.js.map +1 -0
- package/dist/combat/index.d.ts +256 -0
- package/dist/combat/index.d.ts.map +1 -0
- package/dist/combat/index.js +222 -0
- package/dist/combat/index.js.map +1 -0
- package/dist/crafting/index.d.ts +308 -0
- package/dist/crafting/index.d.ts.map +1 -0
- package/dist/crafting/index.js +400 -0
- package/dist/crafting/index.js.map +1 -0
- package/dist/factions/index.d.ts +292 -0
- package/dist/factions/index.d.ts.map +1 -0
- package/dist/factions/index.js +334 -0
- package/dist/factions/index.js.map +1 -0
- package/dist/fleets/actions/index.d.ts +200 -0
- package/dist/fleets/actions/index.d.ts.map +1 -0
- package/dist/fleets/actions/index.js +854 -0
- package/dist/fleets/actions/index.js.map +1 -0
- package/dist/fleets/index.d.ts +100 -0
- package/dist/fleets/index.d.ts.map +1 -0
- package/dist/fleets/index.js +124 -0
- package/dist/fleets/index.js.map +1 -0
- package/dist/identity/index.d.ts +225 -0
- package/dist/identity/index.d.ts.map +1 -0
- package/dist/identity/index.js +341 -0
- package/dist/identity/index.js.map +1 -0
- package/dist/index.d.ts +401 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +519 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/c4/adapter.d.ts +6 -0
- package/dist/internal/c4/adapter.d.ts.map +1 -0
- package/dist/internal/c4/adapter.js +2 -0
- package/dist/internal/c4/adapter.js.map +1 -0
- package/dist/internal/c4/bindings.d.ts +4 -0
- package/dist/internal/c4/bindings.d.ts.map +1 -0
- package/dist/internal/c4/bindings.js +4 -0
- package/dist/internal/c4/bindings.js.map +1 -0
- package/dist/internal/c4/character-modifier.d.ts +5 -0
- package/dist/internal/c4/character-modifier.d.ts.map +1 -0
- package/dist/internal/c4/character-modifier.js +100 -0
- package/dist/internal/c4/character-modifier.js.map +1 -0
- package/dist/internal/c4/claim-stake.d.ts +140 -0
- package/dist/internal/c4/claim-stake.d.ts.map +1 -0
- package/dist/internal/c4/claim-stake.js +205 -0
- package/dist/internal/c4/claim-stake.js.map +1 -0
- package/dist/internal/c4/combat.d.ts +98 -0
- package/dist/internal/c4/combat.d.ts.map +1 -0
- package/dist/internal/c4/combat.js +232 -0
- package/dist/internal/c4/combat.js.map +1 -0
- package/dist/internal/c4/crafting.d.ts +170 -0
- package/dist/internal/c4/crafting.d.ts.map +1 -0
- package/dist/internal/c4/crafting.js +387 -0
- package/dist/internal/c4/crafting.js.map +1 -0
- package/dist/internal/c4/factions.d.ts +248 -0
- package/dist/internal/c4/factions.d.ts.map +1 -0
- package/dist/internal/c4/factions.js +589 -0
- package/dist/internal/c4/factions.js.map +1 -0
- package/dist/internal/c4/fleet-crew-binding.d.ts +12 -0
- package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -0
- package/dist/internal/c4/fleet-crew-binding.js +51 -0
- package/dist/internal/c4/fleet-crew-binding.js.map +1 -0
- package/dist/internal/c4/fleet.d.ts +310 -0
- package/dist/internal/c4/fleet.d.ts.map +1 -0
- package/dist/internal/c4/fleet.js +393 -0
- package/dist/internal/c4/fleet.js.map +1 -0
- package/dist/internal/c4/game.d.ts +192 -0
- package/dist/internal/c4/game.d.ts.map +1 -0
- package/dist/internal/c4/game.js +396 -0
- package/dist/internal/c4/game.js.map +1 -0
- package/dist/internal/c4/identity.d.ts +193 -0
- package/dist/internal/c4/identity.d.ts.map +1 -0
- package/dist/internal/c4/identity.js +180 -0
- package/dist/internal/c4/identity.js.map +1 -0
- package/dist/internal/c4/loot-layout.d.ts +20 -0
- package/dist/internal/c4/loot-layout.d.ts.map +1 -0
- package/dist/internal/c4/loot-layout.js +29 -0
- package/dist/internal/c4/loot-layout.js.map +1 -0
- package/dist/internal/c4/loyalty.d.ts +102 -0
- package/dist/internal/c4/loyalty.d.ts.map +1 -0
- package/dist/internal/c4/loyalty.js +318 -0
- package/dist/internal/c4/loyalty.js.map +1 -0
- package/dist/internal/c4/market.d.ts +112 -0
- package/dist/internal/c4/market.d.ts.map +1 -0
- package/dist/internal/c4/market.js +247 -0
- package/dist/internal/c4/market.js.map +1 -0
- package/dist/internal/c4/pda.d.ts +6 -0
- package/dist/internal/c4/pda.d.ts.map +1 -0
- package/dist/internal/c4/pda.js +45 -0
- package/dist/internal/c4/pda.js.map +1 -0
- package/dist/internal/c4/profile-faction.d.ts +14 -0
- package/dist/internal/c4/profile-faction.d.ts.map +1 -0
- package/dist/internal/c4/profile-faction.js +69 -0
- package/dist/internal/c4/profile-faction.js.map +1 -0
- package/dist/internal/c4/rewards.d.ts +135 -0
- package/dist/internal/c4/rewards.d.ts.map +1 -0
- package/dist/internal/c4/rewards.js +305 -0
- package/dist/internal/c4/rewards.js.map +1 -0
- package/dist/internal/c4/scanning.d.ts +85 -0
- package/dist/internal/c4/scanning.d.ts.map +1 -0
- package/dist/internal/c4/scanning.js +180 -0
- package/dist/internal/c4/scanning.js.map +1 -0
- package/dist/internal/c4/starbase.d.ts +186 -0
- package/dist/internal/c4/starbase.d.ts.map +1 -0
- package/dist/internal/c4/starbase.js +259 -0
- package/dist/internal/c4/starbase.js.map +1 -0
- package/dist/internal/c4/world.d.ts +294 -0
- package/dist/internal/c4/world.d.ts.map +1 -0
- package/dist/internal/c4/world.js +417 -0
- package/dist/internal/c4/world.js.map +1 -0
- package/dist/internal/cargo.d.ts +65 -0
- package/dist/internal/cargo.d.ts.map +1 -0
- package/dist/internal/cargo.js +46 -0
- package/dist/internal/cargo.js.map +1 -0
- package/dist/internal/claim-stake.d.ts +31 -0
- package/dist/internal/claim-stake.d.ts.map +1 -0
- package/dist/internal/claim-stake.js +20 -0
- package/dist/internal/claim-stake.js.map +1 -0
- package/dist/internal/fleet.d.ts +165 -0
- package/dist/internal/fleet.d.ts.map +1 -0
- package/dist/internal/fleet.js +179 -0
- package/dist/internal/fleet.js.map +1 -0
- package/dist/internal/game-context.d.ts +4 -0
- package/dist/internal/game-context.d.ts.map +1 -0
- package/dist/internal/game-context.js +9 -0
- package/dist/internal/game-context.js.map +1 -0
- package/dist/internal/immutable-tree.d.ts +5 -0
- package/dist/internal/immutable-tree.d.ts.map +1 -0
- package/dist/internal/immutable-tree.js +47 -0
- package/dist/internal/immutable-tree.js.map +1 -0
- package/dist/internal/json.d.ts +7 -0
- package/dist/internal/json.d.ts.map +1 -0
- package/dist/internal/json.js +33 -0
- package/dist/internal/json.js.map +1 -0
- package/dist/internal/planning/authorization-adapter.d.ts +63 -0
- package/dist/internal/planning/authorization-adapter.d.ts.map +1 -0
- package/dist/internal/planning/authorization-adapter.js +222 -0
- package/dist/internal/planning/authorization-adapter.js.map +1 -0
- package/dist/internal/read-meta.d.ts +84 -0
- package/dist/internal/read-meta.d.ts.map +1 -0
- package/dist/internal/read-meta.js +28 -0
- package/dist/internal/read-meta.js.map +1 -0
- package/dist/internal/resolved-snapshot.d.ts +3 -0
- package/dist/internal/resolved-snapshot.d.ts.map +1 -0
- package/dist/internal/resolved-snapshot.js +11 -0
- package/dist/internal/resolved-snapshot.js.map +1 -0
- package/dist/internal/zink/provider.d.ts +9 -0
- package/dist/internal/zink/provider.d.ts.map +1 -0
- package/dist/internal/zink/provider.js +213 -0
- package/dist/internal/zink/provider.js.map +1 -0
- package/dist/loyalty/index.d.ts +195 -0
- package/dist/loyalty/index.d.ts.map +1 -0
- package/dist/loyalty/index.js +289 -0
- package/dist/loyalty/index.js.map +1 -0
- package/dist/markets/index.d.ts +195 -0
- package/dist/markets/index.d.ts.map +1 -0
- package/dist/markets/index.js +232 -0
- package/dist/markets/index.js.map +1 -0
- package/dist/mining/index.d.ts +156 -0
- package/dist/mining/index.d.ts.map +1 -0
- package/dist/mining/index.js +236 -0
- package/dist/mining/index.js.map +1 -0
- package/dist/planning/assembly.d.ts +42 -0
- package/dist/planning/assembly.d.ts.map +1 -0
- package/dist/planning/assembly.js +141 -0
- package/dist/planning/assembly.js.map +1 -0
- package/dist/planning/composition.d.ts +4 -0
- package/dist/planning/composition.d.ts.map +1 -0
- package/dist/planning/composition.js +76 -0
- package/dist/planning/composition.js.map +1 -0
- package/dist/planning/execution.d.ts +93 -0
- package/dist/planning/execution.d.ts.map +1 -0
- package/dist/planning/execution.js +549 -0
- package/dist/planning/execution.js.map +1 -0
- package/dist/planning/index.d.ts +219 -0
- package/dist/planning/index.d.ts.map +1 -0
- package/dist/planning/index.js +375 -0
- package/dist/planning/index.js.map +1 -0
- package/dist/planning/plan-instances.d.ts +3 -0
- package/dist/planning/plan-instances.d.ts.map +1 -0
- package/dist/planning/plan-instances.js +8 -0
- package/dist/planning/plan-instances.js.map +1 -0
- package/dist/planning/plan-sequence-checkpoint.d.ts +154 -0
- package/dist/planning/plan-sequence-checkpoint.d.ts.map +1 -0
- package/dist/planning/plan-sequence-checkpoint.js +449 -0
- package/dist/planning/plan-sequence-checkpoint.js.map +1 -0
- package/dist/planning/plan-sequence-execution.d.ts +72 -0
- package/dist/planning/plan-sequence-execution.d.ts.map +1 -0
- package/dist/planning/plan-sequence-execution.js +410 -0
- package/dist/planning/plan-sequence-execution.js.map +1 -0
- package/dist/planning/plan-sequence.d.ts +244 -0
- package/dist/planning/plan-sequence.d.ts.map +1 -0
- package/dist/planning/plan-sequence.js +264 -0
- package/dist/planning/plan-sequence.js.map +1 -0
- package/dist/planning/simulation.d.ts +50 -0
- package/dist/planning/simulation.d.ts.map +1 -0
- package/dist/planning/simulation.js +69 -0
- package/dist/planning/simulation.js.map +1 -0
- package/dist/registry/combat.d.ts +5 -0
- package/dist/registry/combat.d.ts.map +1 -0
- package/dist/registry/combat.js +7 -0
- package/dist/registry/combat.js.map +1 -0
- package/dist/registry/index.d.ts +138 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +397 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/rewards/index.d.ts +202 -0
- package/dist/rewards/index.d.ts.map +1 -0
- package/dist/rewards/index.js +290 -0
- package/dist/rewards/index.js.map +1 -0
- package/dist/scanning/index.d.ts +185 -0
- package/dist/scanning/index.d.ts.map +1 -0
- package/dist/scanning/index.js +207 -0
- package/dist/scanning/index.js.map +1 -0
- package/dist/starbases/actions/index.d.ts +60 -0
- package/dist/starbases/actions/index.d.ts.map +1 -0
- package/dist/starbases/actions/index.js +245 -0
- package/dist/starbases/actions/index.js.map +1 -0
- package/dist/starbases/index.d.ts +165 -0
- package/dist/starbases/index.d.ts.map +1 -0
- package/dist/starbases/index.js +213 -0
- package/dist/starbases/index.js.map +1 -0
- package/dist/world/index.d.ts +180 -0
- package/dist/world/index.d.ts.map +1 -0
- package/dist/world/index.js +265 -0
- package/dist/world/index.js.map +1 -0
- package/package.json +140 -0
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
import { AmmoUsage, FLEET_DISCRIMINATOR, SAGE_PROGRAM_ADDRESS, getFleetDecoder, } from '@staratlas/dev-sage';
|
|
2
|
+
import { Faction } from '@staratlas/dev-profile-faction';
|
|
3
|
+
import { getAddressEncoder, getBytesEncoder, getProgramDerivedAddress, } from '@solana/kit';
|
|
4
|
+
import { AccountDecodeError, InvalidAccountOwnerError, InvalidDiscriminatorError, MissingGameContextError, } from '../../client/errors.js';
|
|
5
|
+
const FLOYDS_PER_ATLAS = 100_000_000;
|
|
6
|
+
const FLEET_MINIMUM_DATA_LENGTH = 685;
|
|
7
|
+
// 8-byte discriminator + version + bump + four addresses + faction + minor-faction id.
|
|
8
|
+
const FLEET_LABEL_OFFSET = 141;
|
|
9
|
+
const FLEET_LABEL_LENGTH = 64;
|
|
10
|
+
const FLEET_LABEL_SEED_PART_LENGTH = 32;
|
|
11
|
+
// The generated helper currently resolves a nested Kit browser build that
|
|
12
|
+
// rejects Node runtimes without `isSecureContext`; keep this equivalent recipe
|
|
13
|
+
// on the SDK's pinned Kit until the generated package converges.
|
|
14
|
+
const FLEET_PDA_PREFIX = new Uint8Array([70, 108, 101, 101, 116]);
|
|
15
|
+
function immutableBytes(bytes) {
|
|
16
|
+
return Object.freeze(Array.from(bytes));
|
|
17
|
+
}
|
|
18
|
+
const FLEET_ACCOUNT_DISCRIMINATOR = immutableBytes(FLEET_DISCRIMINATOR);
|
|
19
|
+
/** Stable Fleet filter offsets verified against the pinned generated codec. */
|
|
20
|
+
export const FLEET_FILTER_OFFSETS = Object.freeze({
|
|
21
|
+
discriminator: 0,
|
|
22
|
+
game: 10,
|
|
23
|
+
owner: 42,
|
|
24
|
+
});
|
|
25
|
+
/** Returns whether an optional Fleet address uses the SAGE program sentinel. */
|
|
26
|
+
export function isAbsentFleetAddress(address) {
|
|
27
|
+
return address === SAGE_PROGRAM_ADDRESS;
|
|
28
|
+
}
|
|
29
|
+
const FLEET_LABEL_SEEDS = new WeakMap();
|
|
30
|
+
function validateFleetAccount(account) {
|
|
31
|
+
if (account.owner !== SAGE_PROGRAM_ADDRESS) {
|
|
32
|
+
throw new InvalidAccountOwnerError('fleet', account.address, SAGE_PROGRAM_ADDRESS, account.owner);
|
|
33
|
+
}
|
|
34
|
+
if (account.data.length < FLEET_ACCOUNT_DISCRIMINATOR.length ||
|
|
35
|
+
FLEET_ACCOUNT_DISCRIMINATOR.some((byte, index) => account.data[index] !== byte)) {
|
|
36
|
+
throw new InvalidDiscriminatorError('fleet', account.address);
|
|
37
|
+
}
|
|
38
|
+
if (account.data.length < FLEET_MINIMUM_DATA_LENGTH) {
|
|
39
|
+
throw new AccountDecodeError('fleet', account.address, new RangeError(`Expected at least ${FLEET_MINIMUM_DATA_LENGTH} Fleet account bytes, received ${account.data.length}.`));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function decodeExactly(account) {
|
|
43
|
+
try {
|
|
44
|
+
const [decoded, offset] = getFleetDecoder().read(account.data, 0);
|
|
45
|
+
if (offset !== account.data.length) {
|
|
46
|
+
throw new RangeError(`Decoded ${offset} of ${account.data.length} Fleet account bytes; trailing bytes are not accepted.`);
|
|
47
|
+
}
|
|
48
|
+
return decoded;
|
|
49
|
+
}
|
|
50
|
+
catch (cause) {
|
|
51
|
+
throw new AccountDecodeError('fleet', account.address, cause);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function fixed(value) {
|
|
55
|
+
return { raw: value.raw, value: value.toNumber() };
|
|
56
|
+
}
|
|
57
|
+
function coordinates(values) {
|
|
58
|
+
return { x: values[0].toNumber(), y: values[1].toNumber() };
|
|
59
|
+
}
|
|
60
|
+
function cargoAmounts(amounts) {
|
|
61
|
+
return [...amounts].map(([cargoId, amount]) => ({ amount, cargoId }));
|
|
62
|
+
}
|
|
63
|
+
function cargoPod(pod) {
|
|
64
|
+
return {
|
|
65
|
+
amounts: cargoAmounts(pod.amounts),
|
|
66
|
+
seqId: pod.seqId,
|
|
67
|
+
storageCost: pod.storageCost,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function faction(value) {
|
|
71
|
+
switch (value) {
|
|
72
|
+
case Faction.Unaligned:
|
|
73
|
+
return 'unaligned';
|
|
74
|
+
case Faction.Mud:
|
|
75
|
+
return 'mud';
|
|
76
|
+
case Faction.Oni:
|
|
77
|
+
return 'oni';
|
|
78
|
+
case Faction.Ustur:
|
|
79
|
+
return 'ustur';
|
|
80
|
+
/* v8 ignore next -- generated enum decoding and compile-time exhaustiveness guard this branch. */
|
|
81
|
+
default:
|
|
82
|
+
throw new RangeError(`Unsupported Fleet faction ${String(value)}.`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function ammoUsage(value) {
|
|
86
|
+
switch (value) {
|
|
87
|
+
case AmmoUsage.None:
|
|
88
|
+
return 'none';
|
|
89
|
+
case AmmoUsage.Light:
|
|
90
|
+
return 'light';
|
|
91
|
+
case AmmoUsage.Heavy:
|
|
92
|
+
return 'heavy';
|
|
93
|
+
/* v8 ignore next -- generated enum decoding and compile-time exhaustiveness guard this branch. */
|
|
94
|
+
default:
|
|
95
|
+
throw new RangeError(`Unsupported Fleet ammo usage ${String(value)}.`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function translateState(state) {
|
|
99
|
+
switch (state.__kind) {
|
|
100
|
+
case 'Idle':
|
|
101
|
+
return { kind: 'idle' };
|
|
102
|
+
case 'ClaimStakeTransfer': {
|
|
103
|
+
const value = state.fields[0];
|
|
104
|
+
return {
|
|
105
|
+
claimStake: value.claimStake,
|
|
106
|
+
endAtUnixSeconds: value.end,
|
|
107
|
+
kind: 'claimStakeTransfer',
|
|
108
|
+
load: cargoAmounts(value.load),
|
|
109
|
+
planet: value.planet,
|
|
110
|
+
unload: cargoAmounts(value.unload),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
case 'Destroyed':
|
|
114
|
+
return { kind: 'destroyed' };
|
|
115
|
+
case 'Docked': {
|
|
116
|
+
const value = state.fields[0];
|
|
117
|
+
return {
|
|
118
|
+
kind: 'docked',
|
|
119
|
+
system: value.system,
|
|
120
|
+
systemSeqId: value.systemSeqId,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
case 'MineAsteroid': {
|
|
124
|
+
const value = state.fields[0];
|
|
125
|
+
return {
|
|
126
|
+
asteroid: value.asteroid,
|
|
127
|
+
kind: 'mining',
|
|
128
|
+
regionXpModifier: value.regionXpModifier.toNumber(),
|
|
129
|
+
regionXpModifierRaw: value.regionXpModifier.raw,
|
|
130
|
+
resourceIds: [...value.resources],
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
case 'MoveWarp': {
|
|
134
|
+
const value = state.fields[0];
|
|
135
|
+
return {
|
|
136
|
+
arrivesAtUnixSeconds: value.warpFinish,
|
|
137
|
+
departsAtUnixSeconds: value.warpStart,
|
|
138
|
+
kind: 'warp',
|
|
139
|
+
to: coordinates(value.to),
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
case 'MoveSubwarp': {
|
|
143
|
+
const value = state.fields[0];
|
|
144
|
+
const durationSeconds = value.journey.duration.toNumber();
|
|
145
|
+
return {
|
|
146
|
+
arrivesAtUnixSeconds: value.journey.departureTime + BigInt(Math.ceil(durationSeconds)),
|
|
147
|
+
departsAtUnixSeconds: value.journey.departureTime,
|
|
148
|
+
durationSeconds,
|
|
149
|
+
durationSecondsRaw: value.journey.duration.raw,
|
|
150
|
+
from: coordinates(value.journey.from),
|
|
151
|
+
kind: 'subwarp',
|
|
152
|
+
to: coordinates(value.journey.to),
|
|
153
|
+
totalFuelExpenditure: value.totalFuelExpenditure.toNumber(),
|
|
154
|
+
totalFuelExpenditureRaw: value.totalFuelExpenditure.raw,
|
|
155
|
+
totalXp: value.totalXpToAward.toNumber(),
|
|
156
|
+
totalXpRaw: value.totalXpToAward.raw,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
case 'Respawn': {
|
|
160
|
+
const value = state.fields[0];
|
|
161
|
+
return {
|
|
162
|
+
kind: 'respawn',
|
|
163
|
+
recoversAtUnixSeconds: value.end,
|
|
164
|
+
startedAtUnixSeconds: value.start,
|
|
165
|
+
wasInLowRiskZone: value.wasInLowRiskZone,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
/* v8 ignore next -- assigning a new generated FleetState variant fails compilation here. */
|
|
169
|
+
default: {
|
|
170
|
+
const exhaustive = state;
|
|
171
|
+
throw new RangeError(`Unsupported generated FleetState variant ${String(exhaustive)}.`);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
function translateMovement(stats) {
|
|
176
|
+
return {
|
|
177
|
+
maxWarpDistance: fixed(stats.maxWarpDistance),
|
|
178
|
+
planetExitFuelAmount: stats.planetExitFuelAmount,
|
|
179
|
+
subwarpFuelConsumptionRate: fixed(stats.subwarpFuelConsumptionRate),
|
|
180
|
+
subwarpSpeed: fixed(stats.subwarpSpeed),
|
|
181
|
+
subwarpXpRate: fixed(stats.subwarpXpRate),
|
|
182
|
+
warpCoolDownSeconds: stats.warpCoolDown,
|
|
183
|
+
warpFuelConsumptionRate: fixed(stats.warpFuelConsumptionRate),
|
|
184
|
+
warpLaneSpeed: fixed(stats.warpLaneSpeed),
|
|
185
|
+
warpSpeed: fixed(stats.warpSpeed),
|
|
186
|
+
warpXpRate: fixed(stats.warpXpRate),
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
function translateCargoStats(stats) {
|
|
190
|
+
return {
|
|
191
|
+
ammoCapacity: stats.ammoCapacity,
|
|
192
|
+
ammoConsumptionRate: fixed(stats.ammoConsumptionRate),
|
|
193
|
+
cargoCapacity: stats.cargoCapacity,
|
|
194
|
+
foodConsumptionRate: fixed(stats.foodConsumptionRate),
|
|
195
|
+
fuelCapacity: stats.fuelCapacity,
|
|
196
|
+
loadRate: fixed(stats.loadRate),
|
|
197
|
+
miningRate: fixed(stats.miningRate),
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
function translateCombat(stats) {
|
|
201
|
+
return {
|
|
202
|
+
aimAbility: stats.aimAbility,
|
|
203
|
+
ammoConsumptionRate: fixed(stats.ammoConsumptionRate),
|
|
204
|
+
ap: stats.ap,
|
|
205
|
+
apRegenRate: fixed(stats.apRegenRate),
|
|
206
|
+
counterDecoy: stats.counterDecoy,
|
|
207
|
+
counterEnergyCapacitor: stats.counterEnergyCapacitor,
|
|
208
|
+
counterFaradayShielding: stats.counterFaradayShielding,
|
|
209
|
+
counterFireSuppressor: stats.counterFireSuppressor,
|
|
210
|
+
counterFlare: stats.counterFlare,
|
|
211
|
+
counterHealingNanobots: stats.counterHealingNanobots,
|
|
212
|
+
counterMine: stats.counterMine,
|
|
213
|
+
counterNegativeRemPlating: stats.counterNegativeRemPlating,
|
|
214
|
+
counterWarmingPlates: stats.counterWarmingPlates,
|
|
215
|
+
critChance: stats.critChance,
|
|
216
|
+
critMultiplier: stats.critMultiplier,
|
|
217
|
+
damageBomb: stats.damageBomb,
|
|
218
|
+
damageBombVariance: stats.damageBombVariance,
|
|
219
|
+
damageEmp: stats.damageEmp,
|
|
220
|
+
damageEmpVariance: stats.damageEmpVariance,
|
|
221
|
+
damageEnergy: stats.damageEnergy,
|
|
222
|
+
damageEnergyVariance: stats.damageEnergyVariance,
|
|
223
|
+
damageGraygoo: stats.damageGraygoo,
|
|
224
|
+
damageGraygooVariance: stats.damageGraygooVariance,
|
|
225
|
+
damageHeat: stats.damageHeat,
|
|
226
|
+
damageHeatVariance: stats.damageHeatVariance,
|
|
227
|
+
damageKinetic: stats.damageKinetic,
|
|
228
|
+
damageKineticVariance: stats.damageKineticVariance,
|
|
229
|
+
damageShockwave: stats.damageShockwave,
|
|
230
|
+
damageShockwaveVariance: stats.damageShockwaveVariance,
|
|
231
|
+
damageSuperchill: stats.damageSuperchill,
|
|
232
|
+
damageSuperchillVariance: stats.damageSuperchillVariance,
|
|
233
|
+
fuelConsumptionRate: stats.fuelConsumptionRate,
|
|
234
|
+
hitChance: stats.hitChance,
|
|
235
|
+
hp: stats.hp,
|
|
236
|
+
lootRate: fixed(stats.lootRate),
|
|
237
|
+
missileDamage: stats.missileDamage,
|
|
238
|
+
missileFireRate: stats.missileFireRate,
|
|
239
|
+
repairAbility: fixed(stats.repairAbility),
|
|
240
|
+
repairCost: fixed(stats.repairCost),
|
|
241
|
+
repairEfficiency: fixed(stats.repairEfficiency),
|
|
242
|
+
repairRate: fixed(stats.repairRate),
|
|
243
|
+
shieldBreakDelaySeconds: stats.shieldBreakDelay,
|
|
244
|
+
shieldRechargeRate: fixed(stats.shieldRechargeRate),
|
|
245
|
+
sp: stats.sp,
|
|
246
|
+
stealthPower: stats.stealthPower,
|
|
247
|
+
warpSpoolTimeSeconds: stats.warpSpoolTime,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
function translateMisc(stats) {
|
|
251
|
+
return {
|
|
252
|
+
lpValue: stats.lpValue,
|
|
253
|
+
medallionValue: stats.medallionValue,
|
|
254
|
+
passengerCapacity: stats.passengerCapacity,
|
|
255
|
+
requiredCrew: stats.requiredCrew,
|
|
256
|
+
respawnFeeAtlas: Number(stats.respawnFee) / FLOYDS_PER_ATLAS,
|
|
257
|
+
respawnFeeRaw: stats.respawnFee,
|
|
258
|
+
respawnTimeWithFeeSeconds: stats.respawnTimeWithFee,
|
|
259
|
+
respawnTimeWithoutFeeSeconds: stats.respawnTimeWithoutFee,
|
|
260
|
+
scanBonus: stats.scanBonus,
|
|
261
|
+
scanCoolDownSeconds: stats.scanCoolDown,
|
|
262
|
+
scanCost: stats.scanCost,
|
|
263
|
+
scanPower: stats.scanPower,
|
|
264
|
+
xpValue: stats.xpValue,
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
function translateFleet(fleet, fleetLabelSeed) {
|
|
268
|
+
const translated = {
|
|
269
|
+
activeStimulants: [...fleet.activeStimulants].map(([key, stimulant]) => ({
|
|
270
|
+
chargesRemaining: stimulant.chargesRemaining,
|
|
271
|
+
deltaBps: stimulant.deltaBps,
|
|
272
|
+
stat: key[0],
|
|
273
|
+
})),
|
|
274
|
+
ammoBank: { ...fleet.ammoBank },
|
|
275
|
+
ap: fleet.ap,
|
|
276
|
+
apReloadExpiresAt: fleet.apReloadExpiresAt,
|
|
277
|
+
bump: fleet.bump,
|
|
278
|
+
cargoHold: cargoPod(fleet.cargoHold),
|
|
279
|
+
components: cargoPod(fleet.components),
|
|
280
|
+
crewCount: fleet.crewCount,
|
|
281
|
+
faction: faction(fleet.faction),
|
|
282
|
+
fleetShips: [...fleet.fleetShips].map(([shipId, quantity]) => ({
|
|
283
|
+
quantity,
|
|
284
|
+
shipId,
|
|
285
|
+
})),
|
|
286
|
+
fuelTank: { ...fleet.fuelTank },
|
|
287
|
+
game: fleet.gameId,
|
|
288
|
+
hp: fleet.hp,
|
|
289
|
+
lastCombatUpdate: fleet.lastCombatUpdate,
|
|
290
|
+
lastUpdateAt: fleet.lastUpdateAt,
|
|
291
|
+
location: coordinates(fleet.location),
|
|
292
|
+
name: fleet.fleetLabel.trim(),
|
|
293
|
+
npcFactionId: fleet.npcFactionId,
|
|
294
|
+
ownerProfile: fleet.ownerProfile,
|
|
295
|
+
pendingHp: fleet.pendingHp,
|
|
296
|
+
rentedCrew: fleet.rentedCrew,
|
|
297
|
+
respawningCargo: cargoPod(fleet.respawningCargo),
|
|
298
|
+
scanCooldownExpiresAt: fleet.scanCooldownExpiresAt,
|
|
299
|
+
shieldBreakDelayExpiresAt: fleet.shieldBreakDelayExpiresAt,
|
|
300
|
+
shipCounts: { ...fleet.shipCounts },
|
|
301
|
+
shipDefinitionsSeqId: fleet.shipDefinitionsSeqId,
|
|
302
|
+
sp: fleet.sp,
|
|
303
|
+
stance: { ammoUsage: ammoUsage(fleet.stance.ammoUsage) },
|
|
304
|
+
state: translateState(fleet.state),
|
|
305
|
+
stats: {
|
|
306
|
+
cargo: translateCargoStats(fleet.stats.cargoStats),
|
|
307
|
+
combat: translateCombat(fleet.stats.combatStats),
|
|
308
|
+
misc: translateMisc(fleet.stats.miscStats),
|
|
309
|
+
movement: translateMovement(fleet.stats.movementStats),
|
|
310
|
+
},
|
|
311
|
+
subProfile: fleet.subProfile,
|
|
312
|
+
subProfileInvalidator: fleet.subProfileInvalidator,
|
|
313
|
+
version: fleet.version,
|
|
314
|
+
warpCooldownExpiresAt: fleet.warpCooldownExpiresAt,
|
|
315
|
+
};
|
|
316
|
+
FLEET_LABEL_SEEDS.set(translated, fleetLabelSeed);
|
|
317
|
+
return translated;
|
|
318
|
+
}
|
|
319
|
+
/** Derives the canonical Fleet PDA from decoded seed fields and retained label bytes. */
|
|
320
|
+
export async function deriveFleetAddress(fleet) {
|
|
321
|
+
const label = FLEET_LABEL_SEEDS.get(fleet);
|
|
322
|
+
if (label === undefined) {
|
|
323
|
+
throw new TypeError('The Fleet label seed bytes are unavailable for canonical address validation. Decode the Fleet through the pinned C4 adapter before retrying.');
|
|
324
|
+
}
|
|
325
|
+
const [address] = await getProgramDerivedAddress({
|
|
326
|
+
programAddress: SAGE_PROGRAM_ADDRESS,
|
|
327
|
+
seeds: [
|
|
328
|
+
getBytesEncoder().encode(FLEET_PDA_PREFIX),
|
|
329
|
+
getAddressEncoder().encode(fleet.game),
|
|
330
|
+
getAddressEncoder().encode(fleet.ownerProfile),
|
|
331
|
+
new Uint8Array(label.slice(0, FLEET_LABEL_SEED_PART_LENGTH)),
|
|
332
|
+
new Uint8Array(label.slice(FLEET_LABEL_SEED_PART_LENGTH)),
|
|
333
|
+
],
|
|
334
|
+
});
|
|
335
|
+
return address;
|
|
336
|
+
}
|
|
337
|
+
/** Rejects a decoded Fleet envelope whose address contradicts its PDA seeds. */
|
|
338
|
+
export async function assertCanonicalFleetAddress(fleet) {
|
|
339
|
+
const expectedAddress = await deriveFleetAddress(fleet.data);
|
|
340
|
+
if (expectedAddress !== fleet.address) {
|
|
341
|
+
throw new AccountDecodeError('fleet', fleet.address, new RangeError('The decoded Fleet contradicted its canonical PDA seeds.'), `Fleet ${fleet.address} is not the canonical Fleet address for its decoded Game, owner Profile, and exact label seed bytes. Refresh Fleet discovery or verify the address, configured cluster, and pinned generated bindings before retrying.`);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
/** Stable Fleet account definition for the pinned C4 bindings. */
|
|
345
|
+
export const fleetAccountDefinition = Object.freeze({
|
|
346
|
+
decode(account) {
|
|
347
|
+
validateFleetAccount(account);
|
|
348
|
+
const fleet = decodeExactly(account);
|
|
349
|
+
const labelSeed = immutableBytes(account.data.slice(FLEET_LABEL_OFFSET, FLEET_LABEL_OFFSET + FLEET_LABEL_LENGTH));
|
|
350
|
+
return translateFleet(fleet, labelSeed);
|
|
351
|
+
},
|
|
352
|
+
discriminator: FLEET_ACCOUNT_DISCRIMINATOR,
|
|
353
|
+
minimumDataLength: FLEET_MINIMUM_DATA_LENGTH,
|
|
354
|
+
programAddress: SAGE_PROGRAM_ADDRESS,
|
|
355
|
+
type: 'fleet',
|
|
356
|
+
validate: validateFleetAccount,
|
|
357
|
+
});
|
|
358
|
+
/** Builds the three stable Fleet memcmp filters; Fleet tails and data size are excluded. */
|
|
359
|
+
export function buildFleetDiscoveryFilters(game, ownerProfile) {
|
|
360
|
+
return Object.freeze([
|
|
361
|
+
{
|
|
362
|
+
offset: FLEET_FILTER_OFFSETS.discriminator,
|
|
363
|
+
bytes: new Uint8Array(FLEET_DISCRIMINATOR),
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
offset: FLEET_FILTER_OFFSETS.game,
|
|
367
|
+
bytes: new Uint8Array(getAddressEncoder().encode(game)),
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
offset: FLEET_FILTER_OFFSETS.owner,
|
|
371
|
+
bytes: new Uint8Array(getAddressEncoder().encode(ownerProfile)),
|
|
372
|
+
},
|
|
373
|
+
]);
|
|
374
|
+
}
|
|
375
|
+
/** Discovers decoded Fleet candidates and verifies the stable query fields after decoding. */
|
|
376
|
+
export async function discoverFleetAccounts(context, ownerProfile, options = {}) {
|
|
377
|
+
const game = context.game;
|
|
378
|
+
if (game === undefined)
|
|
379
|
+
throw new MissingGameContextError();
|
|
380
|
+
const fleets = await context.data.discover(fleetAccountDefinition, {
|
|
381
|
+
...options,
|
|
382
|
+
filters: buildFleetDiscoveryFilters(game, ownerProfile),
|
|
383
|
+
strategy: 'targeted-program-accounts',
|
|
384
|
+
});
|
|
385
|
+
for (const fleet of fleets) {
|
|
386
|
+
if (fleet.data.game !== game || fleet.data.ownerProfile !== ownerProfile) {
|
|
387
|
+
throw new AccountDecodeError('fleet', fleet.address, new RangeError('The decoded Fleet fields contradicted its discovery filters.'), 'A discovered Fleet candidate did not match the requested Game and owner Profile after decoding. Verify the provider, configured cluster, and pinned Fleet filter offsets before retrying.');
|
|
388
|
+
}
|
|
389
|
+
await assertCanonicalFleetAddress(fleet);
|
|
390
|
+
}
|
|
391
|
+
return fleets;
|
|
392
|
+
}
|
|
393
|
+
//# sourceMappingURL=fleet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet.js","sourceRoot":"","sources":["../../../src/internal/c4/fleet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import type { Address, RawAccount } from '../../client/contracts.js';
|
|
2
|
+
import type { C4AccountAdapter } from './adapter.js';
|
|
3
|
+
import type { CharacterModifierData } from './identity.js';
|
|
4
|
+
/** Registry-owned ship fields translated from the generated Game account. */
|
|
5
|
+
export interface GameShipDefinitionData {
|
|
6
|
+
readonly id: number;
|
|
7
|
+
readonly mint: Address;
|
|
8
|
+
readonly name: string;
|
|
9
|
+
readonly sizeClass: 'xx-small' | 'x-small' | 'small' | 'medium' | 'large' | 'capital' | 'commander' | 'titan';
|
|
10
|
+
}
|
|
11
|
+
/** Registry-owned cargo fields translated from the generated Game account. */
|
|
12
|
+
export interface GameCargoDefinitionData {
|
|
13
|
+
readonly categoryId: number;
|
|
14
|
+
readonly id: number;
|
|
15
|
+
readonly mint: Address;
|
|
16
|
+
readonly name: string;
|
|
17
|
+
readonly storageCost: number;
|
|
18
|
+
}
|
|
19
|
+
/** SDK representation of one translated C4 Game ship-definitions section. */
|
|
20
|
+
export interface GameShipDefinitionsSectionData {
|
|
21
|
+
readonly definitions: readonly GameShipDefinitionData[];
|
|
22
|
+
readonly sequenceId: number;
|
|
23
|
+
}
|
|
24
|
+
/** SDK representation of one translated C4 Game cargo-definitions section. */
|
|
25
|
+
export interface GameCargoDefinitionsSectionData {
|
|
26
|
+
readonly definitions: readonly GameCargoDefinitionData[];
|
|
27
|
+
readonly sequenceId: number;
|
|
28
|
+
}
|
|
29
|
+
export interface GameCraftingFixedValueData {
|
|
30
|
+
readonly raw: bigint;
|
|
31
|
+
readonly value: number;
|
|
32
|
+
}
|
|
33
|
+
export interface GameCraftingModifiersData {
|
|
34
|
+
readonly efficiency: GameCraftingFixedValueData;
|
|
35
|
+
readonly fee: GameCraftingFixedValueData;
|
|
36
|
+
readonly speed: GameCraftingFixedValueData;
|
|
37
|
+
readonly crewCount: GameCraftingFixedValueData;
|
|
38
|
+
}
|
|
39
|
+
export interface GameCraftingHabDefinitionData {
|
|
40
|
+
readonly id: number;
|
|
41
|
+
readonly name: string;
|
|
42
|
+
readonly cargoId: number;
|
|
43
|
+
readonly tier: 'one' | 'two' | 'three' | 'four' | 'five';
|
|
44
|
+
readonly slots: number;
|
|
45
|
+
readonly rentMultiplier: GameCraftingFixedValueData;
|
|
46
|
+
readonly placementFeeMultiplier: GameCraftingFixedValueData;
|
|
47
|
+
readonly hubValue: number;
|
|
48
|
+
readonly requiredTagIds: readonly number[];
|
|
49
|
+
readonly providedTagIds: readonly number[];
|
|
50
|
+
readonly evictionGracePeriodSeconds: bigint;
|
|
51
|
+
readonly respawnDurationSeconds: bigint;
|
|
52
|
+
}
|
|
53
|
+
export interface GameHabBuildingDefinitionData {
|
|
54
|
+
readonly id: number;
|
|
55
|
+
readonly name: string;
|
|
56
|
+
readonly slots: number;
|
|
57
|
+
readonly crewSlots: number;
|
|
58
|
+
readonly neededCrew: number;
|
|
59
|
+
readonly constructionDurationSeconds: bigint;
|
|
60
|
+
readonly resourceCapacityRaw: bigint;
|
|
61
|
+
readonly hubValue: number;
|
|
62
|
+
readonly minimumTier: 'one' | 'two' | 'three' | 'four' | 'five';
|
|
63
|
+
readonly modifiers: GameCraftingModifiersData;
|
|
64
|
+
readonly jobCapacity: number;
|
|
65
|
+
readonly xpValue: GameCraftingFixedValueData;
|
|
66
|
+
readonly refunds: readonly {
|
|
67
|
+
readonly cargoId: number;
|
|
68
|
+
readonly quantityRaw: bigint;
|
|
69
|
+
}[];
|
|
70
|
+
readonly constructionCost: readonly {
|
|
71
|
+
readonly cargoId: number;
|
|
72
|
+
readonly quantityRaw: bigint;
|
|
73
|
+
}[];
|
|
74
|
+
readonly researchRequirementIds: readonly number[];
|
|
75
|
+
readonly requiredTagIds: readonly number[];
|
|
76
|
+
readonly providedTagIds: readonly number[];
|
|
77
|
+
readonly netRates: readonly {
|
|
78
|
+
readonly cargoId: number;
|
|
79
|
+
readonly unitsPerSecond: number;
|
|
80
|
+
readonly unitsPerSecondRaw: bigint;
|
|
81
|
+
}[];
|
|
82
|
+
readonly unlockedRecipeIds: readonly number[];
|
|
83
|
+
}
|
|
84
|
+
export interface GameCraftingHabDefinitionsSectionData {
|
|
85
|
+
readonly definitions: readonly GameCraftingHabDefinitionData[];
|
|
86
|
+
readonly sequenceId: number;
|
|
87
|
+
readonly evictionGracePeriodSeconds: bigint;
|
|
88
|
+
readonly respawnDurationSeconds: bigint;
|
|
89
|
+
}
|
|
90
|
+
export interface GameHabBuildingDefinitionsSectionData {
|
|
91
|
+
readonly definitions: readonly GameHabBuildingDefinitionData[];
|
|
92
|
+
readonly sequenceId: number;
|
|
93
|
+
}
|
|
94
|
+
/** Stable gameplay labels for every generated XP category. */
|
|
95
|
+
export type GameXpCategory = 'council-rank' | 'daily' | 'pilot' | 'data-runner' | 'mining' | 'building' | 'crafting' | 'combat';
|
|
96
|
+
export interface GameXpLevelThresholdData {
|
|
97
|
+
readonly building: bigint;
|
|
98
|
+
readonly combat: bigint;
|
|
99
|
+
readonly councilRank: bigint;
|
|
100
|
+
readonly crafting: bigint;
|
|
101
|
+
readonly daily: bigint;
|
|
102
|
+
readonly dataRunner: bigint;
|
|
103
|
+
readonly mining: bigint;
|
|
104
|
+
readonly pilot: bigint;
|
|
105
|
+
}
|
|
106
|
+
/** Sequence-versioned XP rules decoded from the Game account. */
|
|
107
|
+
export interface GameXpDefinitionsSectionData {
|
|
108
|
+
readonly sequenceId: number;
|
|
109
|
+
readonly dailyCheckIn: {
|
|
110
|
+
readonly xpBase: bigint;
|
|
111
|
+
readonly streakBonusXp: bigint;
|
|
112
|
+
readonly loyaltyPointBonusStreakRequirement: bigint;
|
|
113
|
+
readonly streakBuyBackCostAtlas: number;
|
|
114
|
+
readonly streakBuyBackCostAtlasRaw: bigint;
|
|
115
|
+
readonly streakBuyBackMaxDays: number;
|
|
116
|
+
readonly minimumCheckInIntervalSeconds: number;
|
|
117
|
+
readonly epochStartUnixSeconds: bigint;
|
|
118
|
+
};
|
|
119
|
+
readonly renown: {
|
|
120
|
+
readonly divisor: number;
|
|
121
|
+
readonly feederCategoriesRaw: number;
|
|
122
|
+
readonly feederCategories: readonly GameXpCategory[];
|
|
123
|
+
};
|
|
124
|
+
readonly levelThresholds: readonly GameXpLevelThresholdData[];
|
|
125
|
+
}
|
|
126
|
+
export interface GameResearchNodeData {
|
|
127
|
+
readonly id: number;
|
|
128
|
+
readonly name: string;
|
|
129
|
+
readonly atlasCost: number;
|
|
130
|
+
readonly atlasCostRaw: bigint;
|
|
131
|
+
readonly maxLevel: number;
|
|
132
|
+
readonly costGrowthBasisPoints: number;
|
|
133
|
+
readonly cargoCosts: readonly {
|
|
134
|
+
readonly cargoId: number;
|
|
135
|
+
readonly quantityRaw: bigint;
|
|
136
|
+
}[];
|
|
137
|
+
readonly requiredTagIds: readonly number[];
|
|
138
|
+
readonly xpCosts: readonly {
|
|
139
|
+
readonly category: GameXpCategory;
|
|
140
|
+
readonly minimumLevel: number;
|
|
141
|
+
readonly costRaw: bigint;
|
|
142
|
+
}[];
|
|
143
|
+
readonly modifier: CharacterModifierData;
|
|
144
|
+
}
|
|
145
|
+
/** Independent Game research catalog; it carries no Character unlock state. */
|
|
146
|
+
export interface GameResearchDefinitionsSectionData {
|
|
147
|
+
readonly nodes: readonly GameResearchNodeData[];
|
|
148
|
+
readonly sequenceId: number;
|
|
149
|
+
}
|
|
150
|
+
/** Requested sections decoded from one validated C4 Game account read. */
|
|
151
|
+
export interface GameRegistrySectionsData {
|
|
152
|
+
readonly cargo?: GameCargoDefinitionsSectionData;
|
|
153
|
+
readonly craftingHabs?: GameCraftingHabDefinitionsSectionData;
|
|
154
|
+
readonly habBuildings?: GameHabBuildingDefinitionsSectionData;
|
|
155
|
+
readonly research?: GameResearchDefinitionsSectionData;
|
|
156
|
+
readonly ships?: GameShipDefinitionsSectionData;
|
|
157
|
+
readonly xp?: GameXpDefinitionsSectionData;
|
|
158
|
+
}
|
|
159
|
+
export interface GameCombatFixedValueData {
|
|
160
|
+
readonly raw: bigint;
|
|
161
|
+
readonly value: number;
|
|
162
|
+
}
|
|
163
|
+
export interface GameStimulantEffectData {
|
|
164
|
+
readonly statId: number;
|
|
165
|
+
readonly deltaBps: number;
|
|
166
|
+
readonly charges: number;
|
|
167
|
+
readonly stackRuleId: number;
|
|
168
|
+
}
|
|
169
|
+
export interface GameStimulantDefinitionData {
|
|
170
|
+
readonly cargoId: number;
|
|
171
|
+
readonly effects: readonly GameStimulantEffectData[];
|
|
172
|
+
}
|
|
173
|
+
export interface GameCombatConfigurationData {
|
|
174
|
+
readonly globalCeasefire: boolean;
|
|
175
|
+
readonly interactionRange: GameCombatFixedValueData;
|
|
176
|
+
readonly lootExclusivityTimeSeconds: bigint;
|
|
177
|
+
readonly maxLootRate: GameCombatFixedValueData;
|
|
178
|
+
readonly starbaseUpgradeProgressContinuation: GameCombatFixedValueData;
|
|
179
|
+
readonly crewRespawnTimeSeconds: bigint;
|
|
180
|
+
readonly cargoRespawnTimeSeconds: bigint;
|
|
181
|
+
readonly rawShipsRespawnTimeSeconds: bigint;
|
|
182
|
+
readonly maxFleetSize: number;
|
|
183
|
+
readonly stimulantDefinitions: {
|
|
184
|
+
readonly sequenceId: number;
|
|
185
|
+
readonly definitions: readonly GameStimulantDefinitionData[];
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
/** Typed Game definition translating only combat configuration and stimulants. */
|
|
189
|
+
export declare const gameCombatAccountDefinition: C4AccountAdapter<GameCombatConfigurationData>;
|
|
190
|
+
/** Validates one Game account and translates only the requested sections. */
|
|
191
|
+
export declare function decodeGameRegistrySections(account: RawAccount, sections: readonly ('ships' | 'cargo' | 'craftingHabs' | 'habBuildings' | 'xp' | 'research')[]): GameRegistrySectionsData;
|
|
192
|
+
//# sourceMappingURL=game.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game.d.ts","sourceRoot":"","sources":["../../../src/internal/c4/game.ts"],"names":[],"mappings":"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"}
|