/** * 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, getBooleanDecoder, getBooleanEncoder, getI64Decoder, getI64Encoder, getOptionDecoder, getOptionEncoder, getStructDecoder, getStructEncoder, getU32Decoder, getU32Encoder, type Codec, type Decoder, type Encoder, type Option, type OptionOrNullable, } from '@solana/kit'; import { getI8F56Decoder, getI8F56Encoder, getU0F32Decoder, getU0F32Encoder, getU26F6Decoder, getU26F6Encoder, type I8F56, type I8F56Args, type U0F32, type U0F32Args, type U26F6, type U26F6Args, } from '../../fixed/codecs'; export type CombatConfigPartial = { /** global ceasefire */ globalCeasefire: Option; /** The range at which ships can interact */ interactionRange: Option; /** amount of time when the last-hitter of a fleet will have exclusive access to loot */ lootExclusivityTime: Option; /** the max loot rate */ maxLootRate: Option; /** percentage of a starbase upgrade that's kept when a level 0 starbase is destroyed */ starbaseUpgradeProgressContinuation: Option; /** Time taken for crew to respawn when a starbase is destroyed */ crewRespawnTime: Option; /** Time taken for cargo to respawn when a starbase is destroyed */ cargoRespawnTime: Option; /** Time taken for individual ships to respawn when a starbase is destroyed */ rawShipsRespawnTime: Option; /** The max number of ships in a fleet */ maxFleetSize: Option; }; export type CombatConfigPartialArgs = { /** global ceasefire */ globalCeasefire: OptionOrNullable; /** The range at which ships can interact */ interactionRange: OptionOrNullable; /** amount of time when the last-hitter of a fleet will have exclusive access to loot */ lootExclusivityTime: OptionOrNullable; /** the max loot rate */ maxLootRate: OptionOrNullable; /** percentage of a starbase upgrade that's kept when a level 0 starbase is destroyed */ starbaseUpgradeProgressContinuation: OptionOrNullable; /** Time taken for crew to respawn when a starbase is destroyed */ crewRespawnTime: OptionOrNullable; /** Time taken for cargo to respawn when a starbase is destroyed */ cargoRespawnTime: OptionOrNullable; /** Time taken for individual ships to respawn when a starbase is destroyed */ rawShipsRespawnTime: OptionOrNullable; /** The max number of ships in a fleet */ maxFleetSize: OptionOrNullable; }; export function getCombatConfigPartialEncoder(): Encoder { return getStructEncoder([ ['globalCeasefire', getOptionEncoder(getBooleanEncoder())], ['interactionRange', getOptionEncoder(getI8F56Encoder())], ['lootExclusivityTime', getOptionEncoder(getI64Encoder())], ['maxLootRate', getOptionEncoder(getU26F6Encoder())], [ 'starbaseUpgradeProgressContinuation', getOptionEncoder(getU0F32Encoder()), ], ['crewRespawnTime', getOptionEncoder(getI64Encoder())], ['cargoRespawnTime', getOptionEncoder(getI64Encoder())], ['rawShipsRespawnTime', getOptionEncoder(getI64Encoder())], ['maxFleetSize', getOptionEncoder(getU32Encoder())], ]); } export function getCombatConfigPartialDecoder(): Decoder { return getStructDecoder([ ['globalCeasefire', getOptionDecoder(getBooleanDecoder())], ['interactionRange', getOptionDecoder(getI8F56Decoder())], ['lootExclusivityTime', getOptionDecoder(getI64Decoder())], ['maxLootRate', getOptionDecoder(getU26F6Decoder())], [ 'starbaseUpgradeProgressContinuation', getOptionDecoder(getU0F32Decoder()), ], ['crewRespawnTime', getOptionDecoder(getI64Decoder())], ['cargoRespawnTime', getOptionDecoder(getI64Decoder())], ['rawShipsRespawnTime', getOptionDecoder(getI64Decoder())], ['maxFleetSize', getOptionDecoder(getU32Decoder())], ]); } export function getCombatConfigPartialCodec(): Codec< CombatConfigPartialArgs, CombatConfigPartial > { return combineCodec( getCombatConfigPartialEncoder(), getCombatConfigPartialDecoder(), ); }