Skip to content

combat

Defined in: packages/sage/src/combat/index.ts:129

Immutable Game combat configuration and stimulant catalog.

declare const configuration: CombatConfigurationSnapshot;
console.log(configuration.globalCeasefire, configuration.maxFleetSize);

readonly address: Address;

Defined in: packages/sage/src/combat/index.ts:134

readonly cargoRespawnTimeSeconds: bigint;

Defined in: packages/sage/src/internal/c4/game.ts:243

GameCombatConfigurationData.cargoRespawnTimeSeconds

readonly crewRespawnTimeSeconds: bigint;

Defined in: packages/sage/src/internal/c4/game.ts:242

GameCombatConfigurationData.crewRespawnTimeSeconds

readonly globalCeasefire: boolean;

Defined in: packages/sage/src/internal/c4/game.ts:237

GameCombatConfigurationData.globalCeasefire

readonly interactionRange: GameCombatFixedValueData;

Defined in: packages/sage/src/internal/c4/game.ts:238

GameCombatConfigurationData.interactionRange

readonly kind: "combatConfiguration";

Defined in: packages/sage/src/combat/index.ts:133

readonly lootExclusivityTimeSeconds: bigint;

Defined in: packages/sage/src/internal/c4/game.ts:239

GameCombatConfigurationData.lootExclusivityTimeSeconds

readonly maxFleetSize: number;

Defined in: packages/sage/src/internal/c4/game.ts:245

GameCombatConfigurationData.maxFleetSize

readonly maxLootRate: GameCombatFixedValueData;

Defined in: packages/sage/src/internal/c4/game.ts:240

GameCombatConfigurationData.maxLootRate

readonly rawShipsRespawnTimeSeconds: bigint;

Defined in: packages/sage/src/internal/c4/game.ts:244

GameCombatConfigurationData.rawShipsRespawnTimeSeconds

readonly starbaseUpgradeProgressContinuation: GameCombatFixedValueData;

Defined in: packages/sage/src/internal/c4/game.ts:241

GameCombatConfigurationData.starbaseUpgradeProgressContinuation

readonly stimulantDefinitions: {
definitions: readonly CombatStimulantDefinition[];
sequenceId: number;
};

Defined in: packages/sage/src/combat/index.ts:135

readonly definitions: readonly CombatStimulantDefinition[];
readonly sequenceId: number;

toJSON(): unknown;

Defined in: packages/sage/src/combat/index.ts:139

unknown


Defined in: packages/sage/src/combat/index.ts:117

One cargo-backed combat stimulant definition.

declare const stimulant: CombatStimulantDefinition;
console.log(stimulant.cargo.name, stimulant.effects.length);

readonly cargo: CargoDefinitionSummary;

Defined in: packages/sage/src/combat/index.ts:118

readonly effects: readonly GameStimulantEffectData[];

Defined in: packages/sage/src/combat/index.ts:119


Defined in: packages/sage/src/internal/c4/fleet.ts:243

Translated Fleet combat statistics.

declare const stats: FleetCombatStatsData;
const hitPoints = stats.hp;

readonly aimAbility: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:284

readonly ammoConsumptionRate: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:247

readonly ap: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:244

readonly apRegenRate: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:248

readonly counterDecoy: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:273

readonly counterEnergyCapacitor: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:274

readonly counterFaradayShielding: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:281

readonly counterFireSuppressor: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:275

readonly counterFlare: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:276

readonly counterHealingNanobots: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:277

readonly counterMine: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:278

readonly counterNegativeRemPlating: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:279

readonly counterWarmingPlates: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:280

readonly critChance: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:285

readonly critMultiplier: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:286

readonly damageBomb: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:271

readonly damageBombVariance: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:272

readonly damageEmp: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:261

readonly damageEmpVariance: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:262

readonly damageEnergy: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:259

readonly damageEnergyVariance: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:260

readonly damageGraygoo: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:267

readonly damageGraygooVariance: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:268

readonly damageHeat: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:269

readonly damageHeatVariance: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:270

readonly damageKinetic: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:257

readonly damageKineticVariance: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:258

readonly damageShockwave: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:265

readonly damageShockwaveVariance: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:266

readonly damageSuperchill: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:263

readonly damageSuperchillVariance: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:264

readonly fuelConsumptionRate: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:287

readonly hitChance: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:283

readonly hp: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:245

readonly lootRate: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:254

readonly missileDamage: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:288

readonly missileFireRate: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:289

readonly repairAbility: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:251

readonly repairCost: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:253

readonly repairEfficiency: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:252

readonly repairRate: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:250

readonly shieldBreakDelaySeconds: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:255

readonly shieldRechargeRate: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:249

readonly sp: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:246

readonly stealthPower: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:282

readonly warpSpoolTimeSeconds: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:256


Defined in: packages/sage/src/combat/index.ts:152

Immutable focused combat projection of one Fleet.

declare const status: FleetCombatStatusSnapshot;
console.log(
status.current.abilityPowerPoints,
status.timing.abilityPowerReloadAtUnixSeconds,
);

readonly current: {
abilityPowerPoints: number;
hullPoints: number;
pendingHullPoints: number;
shieldPoints: number;
};

Defined in: packages/sage/src/combat/index.ts:160

readonly abilityPowerPoints: number;
readonly hullPoints: number;
readonly pendingHullPoints: number;
readonly shieldPoints: number;

readonly faction: CombatFaction;

Defined in: packages/sage/src/combat/index.ts:156

readonly fleet: EntityRef<"fleet">;

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

readonly kind: "fleetCombatStatus";

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

readonly ownerProfile: EntityRef<"profile">;

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

readonly participant:
| {
kind: "player";
}
| {
factionId: number;
kind: "npc";
};

Defined in: packages/sage/src/combat/index.ts:157

readonly stance: {
ammoUsage: "none" | "light" | "heavy";
};

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

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

readonly stats: FleetCombatStatsData;

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

readonly stimulants: readonly {
chargesRemaining: number;
deltaBps: number;
statId: number;
}[];

Defined in: packages/sage/src/combat/index.ts:172

readonly timing: {
abilityPowerReloadAtUnixSeconds: bigint;
lastCombatUpdateAtUnixSeconds: bigint;
shieldBreakDelayEndsAtUnixSeconds: bigint;
};

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

readonly abilityPowerReloadAtUnixSeconds: bigint;
readonly lastCombatUpdateAtUnixSeconds: bigint;
readonly shieldBreakDelayEndsAtUnixSeconds: bigint;

toJSON(): unknown;

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

unknown


Defined in: packages/sage/src/internal/c4/game.ts:236

Translated Game combat configuration before cargo resolution.

declare const configuration: GameCombatConfigurationData;
console.log(configuration.maxFleetSize);

readonly cargoRespawnTimeSeconds: bigint;

Defined in: packages/sage/src/internal/c4/game.ts:243

readonly crewRespawnTimeSeconds: bigint;

Defined in: packages/sage/src/internal/c4/game.ts:242

readonly globalCeasefire: boolean;

Defined in: packages/sage/src/internal/c4/game.ts:237

readonly interactionRange: GameCombatFixedValueData;

Defined in: packages/sage/src/internal/c4/game.ts:238

readonly lootExclusivityTimeSeconds: bigint;

Defined in: packages/sage/src/internal/c4/game.ts:239

readonly maxFleetSize: number;

Defined in: packages/sage/src/internal/c4/game.ts:245

readonly maxLootRate: GameCombatFixedValueData;

Defined in: packages/sage/src/internal/c4/game.ts:240

readonly rawShipsRespawnTimeSeconds: bigint;

Defined in: packages/sage/src/internal/c4/game.ts:244

readonly starbaseUpgradeProgressContinuation: GameCombatFixedValueData;

Defined in: packages/sage/src/internal/c4/game.ts:241

readonly stimulantDefinitions: {
definitions: readonly GameStimulantDefinitionData[];
sequenceId: number;
};

Defined in: packages/sage/src/internal/c4/game.ts:246

readonly definitions: readonly GameStimulantDefinitionData[];
readonly sequenceId: number;

Defined in: packages/sage/src/internal/c4/game.ts:224

One translated combat stimulant effect.

const effect: GameStimulantEffectData = {
charges: 1,
deltaBps: 250,
stackRuleId: 0,
statId: 2,
};

readonly charges: number;

Defined in: packages/sage/src/internal/c4/game.ts:227

readonly deltaBps: number;

Defined in: packages/sage/src/internal/c4/game.ts:226

readonly stackRuleId: number;

Defined in: packages/sage/src/internal/c4/game.ts:228

readonly statId: number;

Defined in: packages/sage/src/internal/c4/game.ts:225


Defined in: packages/sage/src/combat/index.ts:188

One resolved cargo quantity inside Loot.

declare const item: LootCargoItem;
console.log(item.cargo.name, item.quantityRaw);

readonly cargo: CargoDefinitionSummary;

Defined in: packages/sage/src/combat/index.ts:189

readonly quantityRaw: bigint;

Defined in: packages/sage/src/combat/index.ts:190


Defined in: packages/sage/src/combat/index.ts:200

Resolved inventory for one Loot leg.

declare const inventory: LootInventory;
console.log(inventory.items.length);

readonly items: readonly LootCargoItem[];

Defined in: packages/sage/src/combat/index.ts:203

readonly sequenceId: number;

Defined in: packages/sage/src/combat/index.ts:201

readonly storageCostRaw: bigint;

Defined in: packages/sage/src/combat/index.ts:202


Defined in: packages/sage/src/combat/index.ts:213

One translated Loot item group.

declare const item: LootItem;
console.log(item.destroyer.address, item.exclusivityUnlockAtUnixSeconds);

readonly destroyer: EntityRef<"fleet">;

Defined in: packages/sage/src/combat/index.ts:214

readonly exclusivityUnlockAtUnixSeconds: bigint;

Defined in: packages/sage/src/combat/index.ts:215

readonly inventory: LootInventory;

Defined in: packages/sage/src/combat/index.ts:217

readonly rewardReclaimAtUnixSeconds: bigint;

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


Defined in: packages/sage/src/combat/index.ts:227

Immutable Loot snapshot with resolved cargo inventory.

declare const loot: LootSnapshot;
console.log(loot.reward.kind, loot.items.length);

readonly address: Address;

Defined in: packages/sage/src/combat/index.ts:229

readonly coordinates: {
x: number;
y: number;
};

Defined in: packages/sage/src/combat/index.ts:233

readonly x: number;
readonly y: number;

readonly game: EntityRef<"game">;

Defined in: packages/sage/src/combat/index.ts:231

readonly items: readonly LootItem[];

Defined in: packages/sage/src/combat/index.ts:235

readonly kind: "loot";

Defined in: packages/sage/src/combat/index.ts:228

readonly profile: EntityRef<"profile">;

Defined in: packages/sage/src/combat/index.ts:232

readonly reward: LootRewardData;

Defined in: packages/sage/src/combat/index.ts:234

readonly version: number;

Defined in: packages/sage/src/combat/index.ts:230

toJSON(): unknown;

Defined in: packages/sage/src/combat/index.ts:236

unknown


Defined in: packages/sage/src/internal/c4/combat.ts:139

Fully translated OutlawFlag account data.

readonly bump: number;

Defined in: packages/sage/src/internal/c4/combat.ts:146

readonly declaredAtUnixSeconds: bigint;

Defined in: packages/sage/src/internal/c4/combat.ts:144

readonly faction: CombatFaction;

Defined in: packages/sage/src/internal/c4/combat.ts:142

readonly isOutlaw: boolean;

Defined in: packages/sage/src/internal/c4/combat.ts:143

readonly profile: Address;

Defined in: packages/sage/src/internal/c4/combat.ts:141

readonly pvpUntilUnixSeconds: bigint;

Defined in: packages/sage/src/internal/c4/combat.ts:145

readonly version: number;

Defined in: packages/sage/src/internal/c4/combat.ts:140


Defined in: packages/sage/src/combat/index.ts:246

Immutable optional outlaw declaration derived from Profile and faction.

declare const flag: OutlawFlagSnapshot;
console.log(flag.isOutlaw, flag.pvpUntilUnixSeconds);

readonly address: Address;

Defined in: packages/sage/src/combat/index.ts:251

readonly bump: number;

Defined in: packages/sage/src/internal/c4/combat.ts:146

OutlawFlagAccountData.bump

readonly declaredAtUnixSeconds: bigint;

Defined in: packages/sage/src/internal/c4/combat.ts:144

OutlawFlagAccountData.declaredAtUnixSeconds

readonly faction: CombatFaction;

Defined in: packages/sage/src/internal/c4/combat.ts:142

OutlawFlagAccountData.faction

readonly isOutlaw: boolean;

Defined in: packages/sage/src/internal/c4/combat.ts:143

OutlawFlagAccountData.isOutlaw

readonly kind: "outlawFlag";

Defined in: packages/sage/src/combat/index.ts:250

readonly profile: EntityRef<"profile">;

Defined in: packages/sage/src/combat/index.ts:252

readonly pvpUntilUnixSeconds: bigint;

Defined in: packages/sage/src/internal/c4/combat.ts:145

OutlawFlagAccountData.pvpUntilUnixSeconds

readonly version: number;

Defined in: packages/sage/src/internal/c4/combat.ts:140

OutlawFlagAccountData.version

toJSON(): unknown;

Defined in: packages/sage/src/combat/index.ts:253

unknown

type CombatFaction = "unaligned" | "mud" | "oni" | "ustur";

Defined in: packages/sage/src/internal/c4/combat.ts:84

Faction identifier accepted by combat reads.

const faction: CombatFaction = 'mud';

type LootDiscoveryOptions = Omit<DiscoveryRequest, "filters" | "strategy">;

Defined in: packages/sage/src/combat/index.ts:105

Options supported by targeted Loot discovery.

const options: LootDiscoveryOptions = { commitment: 'confirmed' };

type LootRewardData =
| {
kind: "none";
}
| {
committedAtUnixSeconds: bigint;
configVersion: number;
kind: "committed" | "resolved";
legs: readonly LootRewardLegData[];
slot: bigint;
}
| {
committedAtUnixSeconds: bigint;
configVersion: number;
kind: "unknown";
legs: readonly LootRewardLegData[];
rawStatus: number;
slot: bigint;
};

Defined in: packages/sage/src/internal/c4/combat.ts:110

Translated Loot reward state, including unknown raw status bytes.

const reward: LootRewardData = { kind: 'none' };

function getCombatConfiguration(context, options?): Promise<CombatConfigurationSnapshot>;

Defined in: packages/sage/src/combat/index.ts:321

Reads the configured Game’s combat settings and stimulant catalog.

ParameterType
contextSageContext
options?ReadOptions

Promise<CombatConfigurationSnapshot>

declare const ctx: SageContext;
const configuration = await getCombatConfiguration(ctx);

function getFleetCombatStatus(
context,
address,
options?): Promise<FleetCombatStatusSnapshot>;

Defined in: packages/sage/src/combat/index.ts:387

Reads one Fleet and returns only its translated combat state.

ParameterType
contextSageContext
addressAddress
options?ReadOptions

Promise<FleetCombatStatusSnapshot>

declare const ctx: SageContext;
declare const fleet: Address;
const status = await getFleetCombatStatus(ctx, fleet);

function getLoot(
context,
address,
options?): Promise<LootSnapshot>;

Defined in: packages/sage/src/combat/index.ts:483

Reads required Loot by its signer-created account address.

ParameterType
contextSageContext
addressAddress
options?ReadOptions

Promise<LootSnapshot>

declare const ctx: SageContext;
declare const address: Address;
const loot = await getLoot(ctx, address);

function getLootByProfile(
context,
profile,
options?): Promise<readonly LootSnapshot[]>;

Defined in: packages/sage/src/combat/index.ts:525

Discovers Loot created by one Profile using stable targeted filters.

ParameterType
contextSageContext
profileAddress
options?LootDiscoveryOptions

Promise<readonly LootSnapshot[]>

declare const ctx: SageContext;
declare const profile: Address;
const loot = await getLootByProfile(ctx, profile);

function getOutlawFlag(
context,
profile,
againstFaction,
options?): Promise<
| OutlawFlagSnapshot
| undefined>;

Defined in: packages/sage/src/combat/index.ts:567

Derives and reads an optional OutlawFlag for a Profile/faction pair.

ParameterType
contextSageContext
profileAddress
againstFactionCombatFaction
options?ReadOptions

Promise< | OutlawFlagSnapshot | undefined>

declare const ctx: SageContext;
declare const profile: Address;
const flag = await getOutlawFlag(ctx, profile, 'mud');

function maybeGetLoot(
context,
address,
options?): Promise<LootSnapshot | undefined>;

Defined in: packages/sage/src/combat/index.ts:503

Reads optional Loot by account address.

ParameterType
contextSageContext
addressAddress
options?ReadOptions

Promise<LootSnapshot | undefined>

declare const ctx: SageContext;
declare const address: Address;
const loot = await maybeGetLoot(ctx, address);