Skip to content
Next — unreleased

combat/actions

View as Markdown

Defined in: packages/sage/src/combat/actions/index.ts:141

Public attack stance translated from the generated combat vocabulary.

const stance: FleetAttackStance = { ammoUsage: 'light' };

readonly ammoUsage: "none" | "light" | "heavy";

Defined in: packages/sage/src/combat/actions/index.ts:142


Defined in: packages/sage/src/combat/actions/index.ts:177

One requested cargo quantity from one Loot item.

const cargo: FleetLootCargoRequest = { cargoId: 1, quantityRaw: 5n };

readonly cargoId: number;

Defined in: packages/sage/src/combat/actions/index.ts:178

readonly quantityRaw: bigint;

Defined in: packages/sage/src/combat/actions/index.ts:179


Defined in: packages/sage/src/combat/actions/index.ts:191

One indexed Loot item and its requested cargo quantities.

const target: FleetLootTargetRequest = {
itemIndex: 0,
cargo: [{ cargoId: 1, quantityRaw: 5n }],
};

readonly cargo: readonly FleetLootCargoRequest[];

Defined in: packages/sage/src/combat/actions/index.ts:193

readonly itemIndex: number;

Defined in: packages/sage/src/combat/actions/index.ts:192


Defined in: packages/sage/src/combat/actions/index.ts:131

Inputs for applying one catalogued combat stimulant to an owned Fleet.

declare const authorization: PlanAuthorization;
const options: PlanFleetApplyCombatStimulantOptions = { authorization };

readonly authorization: PlanAuthorization;

Defined in: packages/sage/src/combat/actions/index.ts:132


Defined in: packages/sage/src/combat/actions/index.ts:153

Address-only signer inputs for one Fleet attack.

declare const authorization: PlanAuthorization;
declare const loot: Address;
const options: PlanFleetAttackFleetOptions = { authorization, loot };

readonly authorization: PlanAuthorization;

Defined in: packages/sage/src/combat/actions/index.ts:154

readonly loot: Address;

Defined in: packages/sage/src/combat/actions/index.ts:155


Defined in: packages/sage/src/combat/actions/index.ts:166

Address-only signer inputs for one Fleet attack against a shared Starbase.

declare const authorization: PlanAuthorization;
declare const loot: Address;
const options: PlanFleetAttackStarbaseOptions = { authorization, loot };

readonly authorization: PlanAuthorization;

Defined in: packages/sage/src/combat/actions/index.ts:167

readonly loot: Address;

Defined in: packages/sage/src/combat/actions/index.ts:168


Defined in: packages/sage/src/combat/actions/index.ts:216

Address-only authorization for one Loot retrieval.

declare const authorization: PlanAuthorization;
const options: PlanFleetRetrieveLootOptions = {
atUnixSeconds: 1_700_000_000n,
authorization,
};

readonly atUnixSeconds: bigint;

Defined in: packages/sage/src/combat/actions/index.ts:218

Explicit current Unix timestamp used only to evaluate Loot exclusivity.

readonly authorization: PlanAuthorization;

Defined in: packages/sage/src/combat/actions/index.ts:219

type FleetLootSelection = readonly FleetLootTargetRequest[];

Defined in: packages/sage/src/combat/actions/index.ts:204

Finite ordered cargo selection for one Loot retrieval.

const want: FleetLootSelection = [
{ itemIndex: 0, cargo: [{ cargoId: 1, quantityRaw: 5n }] },
];

function planFleetApplyCombatStimulant(
ctx,
fleet,
stimulant,
input): Promise<Plan>;

Defined in: packages/sage/src/combat/actions/index.ts:665

Plans application of one configured combat stimulant without predicting its effects.

The planner validates Fleet ownership and Game membership, current catalog membership, known cargo balance, crewed non-destroyed state, and fresh whole-account Fleet state. Permission, stacking, charge application, and combat arithmetic remain chain-authoritative.

ParameterType
ctxSageContext
fleetFleetSnapshot
stimulantCombatStimulantDefinition
inputPlanFleetApplyCombatStimulantOptions

Promise<Plan>

declare const ctx: SageContext;
declare const fleet: FleetSnapshot;
declare const stimulant: CombatStimulantDefinition;
declare const authorization: PlanAuthorization;
const plan = await planFleetApplyCombatStimulant(
ctx,
fleet,
stimulant,
{ authorization },
);
console.log(plan.describe());

function planFleetAttackFleet(
ctx,
attacker,
defender,
inputStance,
inputOptions): Promise<Plan>;

Defined in: packages/sage/src/combat/actions/index.ts:1052

Plans one singleton Fleet-on-Fleet attack without predicting its outcome.

Range, randomness, recent slot hashes, final combat arithmetic, and chain races remain authoritative. This Plan cannot be combined with another gameplay instruction because the generated program contract requires a singleton transaction.

ParameterType
ctxSageContext
attackerFleetSnapshot
defenderFleetSnapshot
inputStanceFleetAttackStance
inputOptionsPlanFleetAttackFleetOptions

Promise<Plan>

declare const ctx: SageContext;
declare const attacker: FleetSnapshot;
declare const defender: FleetSnapshot;
declare const authorization: PlanAuthorization;
declare const loot: Address;
const plan = await planFleetAttackFleet(
ctx,
attacker,
defender,
{ ammoUsage: 'light' },
{ authorization, loot },
);

function planFleetAttackStarbase(
ctx,
attacker,
target,
inputStance,
inputOptions): Promise<Plan>;

Defined in: packages/sage/src/combat/actions/index.ts:1317

Plans one singleton Fleet-on-Starbase attack without predicting its outcome.

The planner validates the owned attacking Fleet, canonical target System and nested shared Starbase, configured faction ownership mode, reward configuration, and the optional dynamic-NPC capture economy. Range, capture-cost debit outcome, randomness, damage, rewards, and final admissibility remain chain-authoritative.

ParameterType
ctxSageContext
attackerFleetSnapshot
targetStarSystemSnapshot
inputStanceFleetAttackStance
inputOptionsPlanFleetAttackStarbaseOptions

Promise<Plan>

declare const ctx: SageContext;
declare const attacker: FleetSnapshot;
declare const target: StarSystemSnapshot;
declare const authorization: PlanAuthorization;
declare const loot: Address;
const plan = await planFleetAttackStarbase(
ctx,
attacker,
target,
{ ammoUsage: 'light' },
{ authorization, loot },
);

function planFleetRetrieveLoot(
ctx,
fleet,
loot,
inputWant,
inputOptions): Promise<Plan>;

Defined in: packages/sage/src/combat/actions/index.ts:1955

Plans one transaction-exclusive retrieval from a loaded Loot snapshot.

The planner validates the owned idle Fleet, Loot identity, destroyer exclusivity, and every requested known quantity. Range, recent-slot inputs, destination capacity, intervening races, and final acquired quantities remain chain-authoritative.

ParameterType
ctxSageContext
fleetFleetSnapshot
lootLootSnapshot
inputWantFleetLootSelection
inputOptionsPlanFleetRetrieveLootOptions

Promise<Plan>

declare const ctx: SageContext;
declare const fleet: FleetSnapshot;
declare const loot: LootSnapshot;
declare const authorization: PlanAuthorization;
const plan = await planFleetRetrieveLoot(
ctx,
fleet,
loot,
[{ itemIndex: 0, cargo: [{ cargoId: 1, quantityRaw: 5n }] }],
{ atUnixSeconds: 1_700_000_000n, authorization },
);
console.log(plan.describe());

Re-exports PlanAuthorization