@aephia/atlas-kit 0.6.0-next.69 → 0.6.0-next.70
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/dist/fleets/coordinate-warp-estimate.d.ts +70 -0
- package/dist/fleets/coordinate-warp-estimate.d.ts.map +1 -0
- package/dist/fleets/coordinate-warp-estimate.js +46 -0
- package/dist/fleets/coordinate-warp-estimate.js.map +1 -0
- package/dist/fleets/index.d.ts +1 -0
- package/dist/fleets/index.d.ts.map +1 -1
- package/dist/fleets/index.js +1 -0
- package/dist/fleets/index.js.map +1 -1
- package/dist/fleets/movement-arithmetic.d.ts +21 -0
- package/dist/fleets/movement-arithmetic.d.ts.map +1 -0
- package/dist/fleets/movement-arithmetic.js +41 -0
- package/dist/fleets/movement-arithmetic.js.map +1 -0
- package/dist/fleets/subwarp-estimate.d.ts.map +1 -1
- package/dist/fleets/subwarp-estimate.js +2 -37
- package/dist/fleets/subwarp-estimate.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/** Exact inputs for an Idle Fleet's coordinate warp, not lane travel.
|
|
2
|
+
* Coordinates are I8F56, speed U16F16, Fuel rate U26F6, Character warp-speed
|
|
3
|
+
* modifier I32F32, range U8F8 and spool time integer seconds.
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* const input: FleetCoordinateWarpEstimateInput = {
|
|
7
|
+
* fromRaw: { x: 0n, y: 0n }, toRaw: { x: 1n << 56n, y: 0n },
|
|
8
|
+
* speedRaw: 65536n, fuelRateRaw: 64n, speedModifierRaw: 4294967296n,
|
|
9
|
+
* spoolSeconds: 3, maxWarpDistanceRaw: 256n,
|
|
10
|
+
* };
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export interface FleetCoordinateWarpEstimateInput {
|
|
14
|
+
readonly fromRaw: {
|
|
15
|
+
readonly x: bigint;
|
|
16
|
+
readonly y: bigint;
|
|
17
|
+
};
|
|
18
|
+
readonly toRaw: {
|
|
19
|
+
readonly x: bigint;
|
|
20
|
+
readonly y: bigint;
|
|
21
|
+
};
|
|
22
|
+
readonly speedRaw: bigint;
|
|
23
|
+
readonly fuelRateRaw: bigint;
|
|
24
|
+
readonly speedModifierRaw: bigint;
|
|
25
|
+
readonly spoolSeconds: number;
|
|
26
|
+
readonly maxWarpDistanceRaw: bigint;
|
|
27
|
+
}
|
|
28
|
+
/** Whole-second duration including spool and whole-unit Fuel debit estimate.
|
|
29
|
+
* withinRange compares only computed distance with the stored maximum; it is
|
|
30
|
+
* not permission to travel. Raw distance has 56 fractional bits; AU is approximate.
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* declare const estimate: FleetCoordinateWarpEstimate;
|
|
34
|
+
* console.log(estimate.durationSeconds, estimate.fuelDebit, estimate.withinRange);
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export interface FleetCoordinateWarpEstimate {
|
|
38
|
+
readonly distanceAu: number;
|
|
39
|
+
readonly distanceRaw: bigint;
|
|
40
|
+
readonly durationSeconds: bigint;
|
|
41
|
+
readonly fuelDebit: bigint;
|
|
42
|
+
readonly withinRange: boolean;
|
|
43
|
+
toJSON(): unknown;
|
|
44
|
+
}
|
|
45
|
+
/** Estimates a coordinate warp from Idle using deployment-54356023 arithmetic.
|
|
46
|
+
* Truncates each squared axis before distance calculation, divides duration by
|
|
47
|
+
* base speed and then modifier, rounds travel and Fuel upward, and adds spool.
|
|
48
|
+
* Zero speed modifier means neutral. Exact computed maximum range is inclusive.
|
|
49
|
+
*
|
|
50
|
+
* Coordinates, axis differences and distance must fit signed I8F56, with
|
|
51
|
+
* distinct endpoints. Speed is positive u32 raw, Fuel rate u32 raw, modifier
|
|
52
|
+
* nonnegative i64 raw, spool an integer 0..65535 and range u16 raw. Unsupported
|
|
53
|
+
* inputs are rejected. Tiny distinct points can produce only spool time and
|
|
54
|
+
* zero Fuel. Out-of-range trips still return estimates with withinRange=false.
|
|
55
|
+
*
|
|
56
|
+
* No planet-exit surcharge, XP, cooldown, route policy, Fleet state, crew,
|
|
57
|
+
* permissions or available Fuel are checked. Use the exact encoded destination
|
|
58
|
+
* and Fleet.locationRaw; simulate the actual Plan before signing. Requalify
|
|
59
|
+
* after relevant program changes. Use deriveFleetMovementCooldown separately.
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* const estimate = deriveFleetCoordinateWarpEstimate({
|
|
63
|
+
* fromRaw: { x: 0n, y: 0n }, toRaw: { x: 1n << 56n, y: 0n },
|
|
64
|
+
* speedRaw: 65536n, fuelRateRaw: 64n, speedModifierRaw: 4294967296n,
|
|
65
|
+
* spoolSeconds: 3, maxWarpDistanceRaw: 256n,
|
|
66
|
+
* }); // 4 seconds including spool, 1 Fuel, within range
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export declare function deriveFleetCoordinateWarpEstimate(input: FleetCoordinateWarpEstimateInput): FleetCoordinateWarpEstimate;
|
|
70
|
+
//# sourceMappingURL=coordinate-warp-estimate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinate-warp-estimate.d.ts","sourceRoot":"","sources":["../../src/fleets/coordinate-warp-estimate.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,MAAM,IAAI,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,gCAAgC,GACtC,2BAA2B,CAgC7B"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { InvalidDerivationInputError } from '../client/index.js';
|
|
2
|
+
import { attachJsonSerialization } from '../internal/json.js';
|
|
3
|
+
import { calculateDirectMovement, movementScale, } from './movement-arithmetic.js';
|
|
4
|
+
/** Estimates a coordinate warp from Idle using deployment-54356023 arithmetic.
|
|
5
|
+
* Truncates each squared axis before distance calculation, divides duration by
|
|
6
|
+
* base speed and then modifier, rounds travel and Fuel upward, and adds spool.
|
|
7
|
+
* Zero speed modifier means neutral. Exact computed maximum range is inclusive.
|
|
8
|
+
*
|
|
9
|
+
* Coordinates, axis differences and distance must fit signed I8F56, with
|
|
10
|
+
* distinct endpoints. Speed is positive u32 raw, Fuel rate u32 raw, modifier
|
|
11
|
+
* nonnegative i64 raw, spool an integer 0..65535 and range u16 raw. Unsupported
|
|
12
|
+
* inputs are rejected. Tiny distinct points can produce only spool time and
|
|
13
|
+
* zero Fuel. Out-of-range trips still return estimates with withinRange=false.
|
|
14
|
+
*
|
|
15
|
+
* No planet-exit surcharge, XP, cooldown, route policy, Fleet state, crew,
|
|
16
|
+
* permissions or available Fuel are checked. Use the exact encoded destination
|
|
17
|
+
* and Fleet.locationRaw; simulate the actual Plan before signing. Requalify
|
|
18
|
+
* after relevant program changes. Use deriveFleetMovementCooldown separately.
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* const estimate = deriveFleetCoordinateWarpEstimate({
|
|
22
|
+
* fromRaw: { x: 0n, y: 0n }, toRaw: { x: 1n << 56n, y: 0n },
|
|
23
|
+
* speedRaw: 65536n, fuelRateRaw: 64n, speedModifierRaw: 4294967296n,
|
|
24
|
+
* spoolSeconds: 3, maxWarpDistanceRaw: 256n,
|
|
25
|
+
* }); // 4 seconds including spool, 1 Fuel, within range
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export function deriveFleetCoordinateWarpEstimate(input) {
|
|
29
|
+
const remedy = 'Use current Fleet warp spool seconds and raw U8F8 maximum range within their u16 bounds; simulate the intended coordinate warp before signing.';
|
|
30
|
+
if (!Number.isInteger(input.spoolSeconds) ||
|
|
31
|
+
input.spoolSeconds < 0 ||
|
|
32
|
+
input.spoolSeconds > 65535)
|
|
33
|
+
throw new InvalidDerivationInputError('Warp spool seconds', input.spoolSeconds, remedy);
|
|
34
|
+
if (input.maxWarpDistanceRaw < 0n || input.maxWarpDistanceRaw > 65535n)
|
|
35
|
+
throw new InvalidDerivationInputError('Maximum warp distance raw', input.maxWarpDistanceRaw, remedy);
|
|
36
|
+
const { distanceRaw, durationSecondsRaw, fuelExpenditureRaw } = calculateDirectMovement(input, 'Coordinate warp');
|
|
37
|
+
return Object.freeze(attachJsonSerialization({
|
|
38
|
+
distanceAu: Number(distanceRaw) / Number(movementScale),
|
|
39
|
+
distanceRaw,
|
|
40
|
+
durationSeconds: BigInt(input.spoolSeconds) +
|
|
41
|
+
(durationSecondsRaw + movementScale - 1n) / movementScale,
|
|
42
|
+
fuelDebit: (fuelExpenditureRaw + movementScale - 1n) / movementScale,
|
|
43
|
+
withinRange: distanceRaw <= input.maxWarpDistanceRaw << 48n,
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=coordinate-warp-estimate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinate-warp-estimate.js","sourceRoot":"","sources":["../../src/fleets/coordinate-warp-estimate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACL,uBAAuB,EACvB,aAAa,GACd,MAAM,0BAA0B,CAAC;AA0ClC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,iCAAiC,CAC/C,KAAuC;IAEvC,MAAM,MAAM,GACV,gJAAgJ,CAAC;IACnJ,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC;QACrC,KAAK,CAAC,YAAY,GAAG,CAAC;QACtB,KAAK,CAAC,YAAY,GAAG,KAAK;QAE1B,MAAM,IAAI,2BAA2B,CACnC,oBAAoB,EACpB,KAAK,CAAC,YAAY,EAClB,MAAM,CACP,CAAC;IACJ,IAAI,KAAK,CAAC,kBAAkB,GAAG,EAAE,IAAI,KAAK,CAAC,kBAAkB,GAAG,MAAM;QACpE,MAAM,IAAI,2BAA2B,CACnC,2BAA2B,EAC3B,KAAK,CAAC,kBAAkB,EACxB,MAAM,CACP,CAAC;IACJ,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,GAC3D,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACpD,OAAO,MAAM,CAAC,MAAM,CAClB,uBAAuB,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;QACvD,WAAW;QACX,eAAe,EACb,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;YAC1B,CAAC,kBAAkB,GAAG,aAAa,GAAG,EAAE,CAAC,GAAG,aAAa;QAC3D,SAAS,EAAE,CAAC,kBAAkB,GAAG,aAAa,GAAG,EAAE,CAAC,GAAG,aAAa;QACpE,WAAW,EAAE,WAAW,IAAI,KAAK,CAAC,kBAAkB,IAAI,GAAG;KAC5D,CAAC,CACH,CAAC;AACJ,CAAC"}
|
package/dist/fleets/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { deriveFleetCoordinateWarpEstimate, type FleetCoordinateWarpEstimate, type FleetCoordinateWarpEstimateInput, } from './coordinate-warp-estimate.js';
|
|
1
2
|
export { deriveFleetSubwarpEstimate, type FleetSubwarpEstimate, type FleetSubwarpEstimateInput, } from './subwarp-estimate.js';
|
|
2
3
|
export { deriveFleetMovementCooldown, type FleetMovementCooldownInput, } from './cooldown.js';
|
|
3
4
|
import { SageSdkError, type Address, type DiscoveryRequest, type EntityRef, type ReadOptions, type SageContext, type SageSubscription, type SubscriptionDiagnosticEvent, type SubscriptionOptions } from '../client/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fleets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,GAC/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,2BAA2B,EAC3B,KAAK,0BAA0B,GAChC,MAAM,eAAe,CAAC;AACvB,OAAO,EAGL,YAAY,EAEZ,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,SAAS,EAEd,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAErB,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAE1B,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAC;AAM9B,YAAY,EACV,eAAe,EACf,WAAW,EACX,wBAAwB,EACxB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,CAAC;AACzD,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,cAAc,GACf,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,gBAAgB,EAChB,SAAS,GAAG,UAAU,CACvB,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAc,SAAQ,IAAI,CACzC,wBAAwB,EACxB,cAAc,CACf;IACC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,IAAI,OAAO,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,CAAC;CACtE;AAsED;;;;;;;;GAQG;AACH,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,aAAa,CAAC,CAQxB;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAQpC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,yBAAyB,EACnC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CA0B3B;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,WAAW,EAChB,cAAc,EAAE,OAAO,EACvB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAOnC;AAED,OAAO,EACL,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fleets/index.ts"],"names":[],"mappings":"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"}
|
package/dist/fleets/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { deriveFleetCoordinateWarpEstimate, } from './coordinate-warp-estimate.js';
|
|
1
2
|
export { deriveFleetSubwarpEstimate, } from './subwarp-estimate.js';
|
|
2
3
|
export { deriveFleetMovementCooldown, } from './cooldown.js';
|
|
3
4
|
import { AccountDecodeError, ProviderError, SageSdkError, entityRef, } from '../client/index.js';
|
package/dist/fleets/index.js.map
CHANGED
|
@@ -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,21 @@
|
|
|
1
|
+
interface DirectMovementInput {
|
|
2
|
+
readonly fromRaw: {
|
|
3
|
+
readonly x: bigint;
|
|
4
|
+
readonly y: bigint;
|
|
5
|
+
};
|
|
6
|
+
readonly toRaw: {
|
|
7
|
+
readonly x: bigint;
|
|
8
|
+
readonly y: bigint;
|
|
9
|
+
};
|
|
10
|
+
readonly speedRaw: bigint;
|
|
11
|
+
readonly fuelRateRaw: bigint;
|
|
12
|
+
readonly speedModifierRaw: bigint;
|
|
13
|
+
}
|
|
14
|
+
export declare const movementScale: bigint;
|
|
15
|
+
export declare function calculateDirectMovement(input: DirectMovementInput, kind: 'Subwarp' | 'Coordinate warp'): {
|
|
16
|
+
distanceRaw: bigint;
|
|
17
|
+
durationSecondsRaw: bigint;
|
|
18
|
+
fuelExpenditureRaw: bigint;
|
|
19
|
+
};
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=movement-arithmetic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"movement-arithmetic.d.ts","sourceRoot":"","sources":["../../src/fleets/movement-arithmetic.ts"],"names":[],"mappings":"AAEA,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,eAAO,MAAM,aAAa,QAAY,CAAC;AA2BvC,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,mBAAmB,EAC1B,IAAI,EAAE,SAAS,GAAG,iBAAiB;;;;EAmDpC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { InvalidDerivationInputError } from '../client/index.js';
|
|
2
|
+
export const movementScale = 1n << 56n;
|
|
3
|
+
const signedMax = (1n << 63n) - 1n;
|
|
4
|
+
const unsignedMax = (1n << 32n) - 1n;
|
|
5
|
+
const remedy = 'Use exact current Idle-Fleet coordinates, a positive movement speed, a nonnegative Fuel rate and Character modifier within the documented bounds; simulate the intended action before signing.';
|
|
6
|
+
function bounded(field, value, min, max) {
|
|
7
|
+
if (value < min || value > max)
|
|
8
|
+
throw new InvalidDerivationInputError(field, value, remedy);
|
|
9
|
+
return value;
|
|
10
|
+
}
|
|
11
|
+
function squareRoot(value) {
|
|
12
|
+
if (value === 0n)
|
|
13
|
+
return 0n;
|
|
14
|
+
let root = value;
|
|
15
|
+
let next = (root + 1n) / 2n;
|
|
16
|
+
while (next < root) {
|
|
17
|
+
root = next;
|
|
18
|
+
next = (root + value / root) / 2n;
|
|
19
|
+
}
|
|
20
|
+
return root;
|
|
21
|
+
}
|
|
22
|
+
export function calculateDirectMovement(input, kind) {
|
|
23
|
+
const min = -(1n << 63n);
|
|
24
|
+
for (const point of [input.fromRaw, input.toRaw]) {
|
|
25
|
+
bounded('Coordinate x raw', point.x, min, signedMax);
|
|
26
|
+
bounded('Coordinate y raw', point.y, min, signedMax);
|
|
27
|
+
}
|
|
28
|
+
const dx = bounded('Coordinate x difference raw', input.toRaw.x - input.fromRaw.x, -signedMax, signedMax);
|
|
29
|
+
const dy = bounded('Coordinate y difference raw', input.toRaw.y - input.fromRaw.y, -signedMax, signedMax);
|
|
30
|
+
if (dx === 0n && dy === 0n)
|
|
31
|
+
throw new InvalidDerivationInputError(`${kind} destination displacement`, 0n, remedy);
|
|
32
|
+
const speed = bounded(`${kind} speed raw`, input.speedRaw, 1n, unsignedMax);
|
|
33
|
+
const rate = bounded(`${kind} Fuel rate raw`, input.fuelRateRaw, 0n, unsignedMax);
|
|
34
|
+
const modifier = bounded(`Character ${kind} speed modifier raw`, input.speedModifierRaw, 0n, signedMax);
|
|
35
|
+
const distanceRaw = bounded(`${kind} distance raw`, squareRoot(((dx * dx) / movementScale + (dy * dy) / movementScale) * movementScale), 0n, signedMax);
|
|
36
|
+
const baseDuration = (distanceRaw * (1n << 16n)) / speed;
|
|
37
|
+
const durationSecondsRaw = (baseDuration * (1n << 32n)) / (modifier === 0n ? 1n << 32n : modifier);
|
|
38
|
+
const fuelExpenditureRaw = (distanceRaw * rate) / 64n;
|
|
39
|
+
return { distanceRaw, durationSecondsRaw, fuelExpenditureRaw };
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=movement-arithmetic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"movement-arithmetic.js","sourceRoot":"","sources":["../../src/fleets/movement-arithmetic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subwarp-estimate.d.ts","sourceRoot":"","sources":["../../src/fleets/subwarp-estimate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"subwarp-estimate.d.ts","sourceRoot":"","sources":["../../src/fleets/subwarp-estimate.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,MAAM,IAAI,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,yBAAyB,GAC/B,oBAAoB,CActB"}
|
|
@@ -1,25 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { calculateDirectMovement, movementScale as scale, } from './movement-arithmetic.js';
|
|
2
2
|
import { attachJsonSerialization } from '../internal/json.js';
|
|
3
|
-
const scale = 1n << 56n;
|
|
4
|
-
const signedMax = (1n << 63n) - 1n;
|
|
5
|
-
const unsignedMax = (1n << 32n) - 1n;
|
|
6
|
-
const remedy = 'Use exact current Idle-Fleet coordinates, a positive subwarp speed, a nonnegative Fuel rate and Character modifier within the documented bounds; simulate the intended action before signing.';
|
|
7
|
-
function bounded(field, value, min, max) {
|
|
8
|
-
if (value < min || value > max)
|
|
9
|
-
throw new InvalidDerivationInputError(field, value, remedy);
|
|
10
|
-
return value;
|
|
11
|
-
}
|
|
12
|
-
function squareRoot(value) {
|
|
13
|
-
if (value === 0n)
|
|
14
|
-
return 0n;
|
|
15
|
-
let root = value;
|
|
16
|
-
let next = (root + 1n) / 2n;
|
|
17
|
-
while (next < root) {
|
|
18
|
-
root = next;
|
|
19
|
-
next = (root + value / root) / 2n;
|
|
20
|
-
}
|
|
21
|
-
return root;
|
|
22
|
-
}
|
|
23
3
|
/** Estimates direct subwarp duration and recorded fractional Fuel expenditure.
|
|
24
4
|
* Qualified against PTR deployment slot 54356023, with exact integer rounding
|
|
25
5
|
* within the supported model. Each squared axis truncates before the square
|
|
@@ -44,22 +24,7 @@ function squareRoot(value) {
|
|
|
44
24
|
* ```
|
|
45
25
|
*/
|
|
46
26
|
export function deriveFleetSubwarpEstimate(input) {
|
|
47
|
-
const
|
|
48
|
-
for (const point of [input.fromRaw, input.toRaw]) {
|
|
49
|
-
bounded('Coordinate x raw', point.x, min, signedMax);
|
|
50
|
-
bounded('Coordinate y raw', point.y, min, signedMax);
|
|
51
|
-
}
|
|
52
|
-
const dx = bounded('Coordinate x difference raw', input.toRaw.x - input.fromRaw.x, -signedMax, signedMax);
|
|
53
|
-
const dy = bounded('Coordinate y difference raw', input.toRaw.y - input.fromRaw.y, -signedMax, signedMax);
|
|
54
|
-
if (dx === 0n && dy === 0n)
|
|
55
|
-
throw new InvalidDerivationInputError('Subwarp destination displacement', 0n, remedy);
|
|
56
|
-
const speed = bounded('Subwarp speed raw', input.speedRaw, 1n, unsignedMax);
|
|
57
|
-
const rate = bounded('Subwarp Fuel rate raw', input.fuelRateRaw, 0n, unsignedMax);
|
|
58
|
-
const modifier = bounded('Character subwarp speed modifier raw', input.speedModifierRaw, 0n, signedMax);
|
|
59
|
-
const distanceRaw = bounded('Subwarp distance raw', squareRoot(((dx * dx) / scale + (dy * dy) / scale) * scale), 0n, signedMax);
|
|
60
|
-
const baseDuration = (distanceRaw * (1n << 16n)) / speed;
|
|
61
|
-
const durationSecondsRaw = (baseDuration * (1n << 32n)) / (modifier === 0n ? 1n << 32n : modifier);
|
|
62
|
-
const fuelExpenditureRaw = (distanceRaw * rate) / 64n;
|
|
27
|
+
const { distanceRaw, durationSecondsRaw, fuelExpenditureRaw } = calculateDirectMovement(input, 'Subwarp');
|
|
63
28
|
return Object.freeze(attachJsonSerialization({
|
|
64
29
|
distanceAu: Number(distanceRaw) / Number(scale),
|
|
65
30
|
distanceRaw,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subwarp-estimate.js","sourceRoot":"","sources":["../../src/fleets/subwarp-estimate.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"subwarp-estimate.js","sourceRoot":"","sources":["../../src/fleets/subwarp-estimate.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,aAAa,IAAI,KAAK,GACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AA2C9D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAgC;IAEhC,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,GAC3D,uBAAuB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,MAAM,CAClB,uBAAuB,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QAC/C,WAAW;QACX,eAAe,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3D,kBAAkB;QAClB,eAAe,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3D,kBAAkB;QAClB,UAAU,EAAE,CAAC,kBAAkB,GAAG,KAAK,GAAG,EAAE,CAAC,GAAG,KAAK;KACtD,CAAC,CACH,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED