/** * This code was AUTOGENERATED using the Codama library. * Please DO NOT EDIT THIS FILE, instead use visitors * to add features, then rerun Codama to update it. * * @see https://github.com/codama-idl/codama */ import { combineCodec, getArrayDecoder, getArrayEncoder, getI64Decoder, getI64Encoder, getStructDecoder, getStructEncoder, getU8Decoder, getU8Encoder, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, } from '@solana/kit'; import { getMinorFactionIdDecoder, getMinorFactionIdEncoder, type MinorFactionId, type MinorFactionIdArgs, } from '.'; export type SetFleetDirectiveArgs = { /** * Directive kind discriminant ([`FleetDirectiveKind`]); unknown ⇒ `InvalidFleetDirective`. * `NemesisHunt` (=4) is ADMIN-ONLY. */ kind: number; /** 0–100 off-chain AI dial (pursuit range / engage odds). NO on-chain rate consequence. */ aggression: number; /** Target faction for `Invade`/`Defend`/etc. (0 = none). */ targetFaction: MinorFactionId; /** Target coordinate (`[Point; 2]`). */ target: Array; /** Absolute unix expiry (0 = never; encoded i32-relative on write — out-of-range ⇒ `InvalidFleetDirective`). */ expiresAt: bigint; }; export type SetFleetDirectiveArgsArgs = { /** * Directive kind discriminant ([`FleetDirectiveKind`]); unknown ⇒ `InvalidFleetDirective`. * `NemesisHunt` (=4) is ADMIN-ONLY. */ kind: number; /** 0–100 off-chain AI dial (pursuit range / engage odds). NO on-chain rate consequence. */ aggression: number; /** Target faction for `Invade`/`Defend`/etc. (0 = none). */ targetFaction: MinorFactionIdArgs; /** Target coordinate (`[Point; 2]`). */ target: Array; /** Absolute unix expiry (0 = never; encoded i32-relative on write — out-of-range ⇒ `InvalidFleetDirective`). */ expiresAt: number | bigint; }; export function getSetFleetDirectiveArgsEncoder(): FixedSizeEncoder { return getStructEncoder([ ['kind', getU8Encoder()], ['aggression', getU8Encoder()], ['targetFaction', getMinorFactionIdEncoder()], ['target', getArrayEncoder(getI64Encoder(), { size: 2 })], ['expiresAt', getI64Encoder()], ]); } export function getSetFleetDirectiveArgsDecoder(): FixedSizeDecoder { return getStructDecoder([ ['kind', getU8Decoder()], ['aggression', getU8Decoder()], ['targetFaction', getMinorFactionIdDecoder()], ['target', getArrayDecoder(getI64Decoder(), { size: 2 })], ['expiresAt', getI64Decoder()], ]); } export function getSetFleetDirectiveArgsCodec(): FixedSizeCodec< SetFleetDirectiveArgsArgs, SetFleetDirectiveArgs > { return combineCodec( getSetFleetDirectiveArgsEncoder(), getSetFleetDirectiveArgsDecoder(), ); }