import { KeyedAccountInfo, PublicKey } from '@solana/web3.js'; import { BN } from '@staratlas/anchor'; import { Account, AsyncSigner, DecodedAccountData, FixedSizeArray, InstructionReturn } from '@staratlas/data-source'; import { PointsIDLProgram } from '@staratlas/points'; import { Cargo, Crafting, GameAccount, Mints, Points, RiskZoneData, RiskZonesData, SageIDL, SageIDLProgram, SagePointsCategory, StarbaseLevelInfo, StarbaseUpkeepInfo, StarbaseUpkeepLevels, Vaults } from './constants'; import { SectorRing } from './planet'; /** * Check if two `Cargo` instances are equal * @param data1 - first Cargo * @param data2 - second Cargo * @returns boolean */ export declare function cargoEquals(data1: Cargo, data2: Cargo): boolean; /** * Check if two `Crafting` instances are equal * @param data1 - first Crafting * @param data2 - second Crafting * @returns boolean */ export declare function craftingEquals(data1: Crafting, data2: Crafting): boolean; /** * Check if two `SagePointsCategory` instances are equal * @param data1 - first SagePointsCategory * @param data2 - second SagePointsCategory * @returns boolean */ export declare function sagePointsCategoryEquals(data1: SagePointsCategory, data2: SagePointsCategory): boolean; /** * Check if two `Points` instances are equal * @param points1 - first Points * @param points2 - second Points * @returns boolean */ export declare function pointsEquals(points1: Points, points2: Points): boolean; /** * Check if two `Mints` instances are equal * @param mints1 - first Mints * @param mints2 - second Mints * @returns boolean */ export declare function mintsEquals(mints1: Mints, mints2: Mints): boolean; /** * Check if two `Vaults` instances are equal * @param vaults1 - first Vaults * @param vaults2 - second Vaults * @returns boolean */ export declare function vaultsEquals(vaults1: Vaults, vaults2: Vaults): boolean; export declare enum PointsCategoryType { LP = 1, CRXP = 2, PXP = 3, DRXP = 4, MXP = 5, CXP = 6, COXP = 7 } export interface FleetInputItem { level: number; faction: number; hp: BN; sp: BN; sectorRingAvailable: SectorRing; warpLaneMovementFee: BN; repairFee: BN; repairEfficiency: number; shieldRechargeRate: number; shieldBreakDelay: number; } export interface StarbaseLevelInfoArrayInput extends FleetInputItem { starbaseLevelIndex?: number /** provide this to update a certain index */; recipeCategoryForLevel: PublicKey; oldRecipeForUpgrade: PublicKey; newRecipeForUpgrade: PublicKey; } export interface StarbaseUpkeepInfoArrayInput { level: number; info: StarbaseUpkeepInfo; } export interface FleetInput { starbaseLevelInfoArray: FleetInputItem[] | null; upkeepInfoArray: StarbaseUpkeepInfoArrayInput[] | null; maxFleetSize: number | null; } export interface FactionsStarbaseLevelInfo { mud: FixedSizeArray; oni: FixedSizeArray; ustur: FixedSizeArray; } /** * Check if two `StarbaseLevelInfo` instances are equal * @param data1 - first StarbaseLevelInfo * @param data2 - second StarbaseLevelInfo * @returns boolean */ export declare function starbaseLevelInfoEquals(data1: StarbaseLevelInfo, data2: StarbaseLevelInfo): boolean; /** * Check if two `StarbaseLevelInfo` arrays are equal * @param data1 - first StarbaseLevelInfo array * @param data2 - second StarbaseLevelInfo array * @returns boolean */ export declare function starbaseLevelInfoArraysEqual(data1: StarbaseLevelInfo[], data2: StarbaseLevelInfo[]): boolean; /** * Check if two `FactionsStarbaseLevelInfo` instances are equal * @param data1 - first FactionsStarbaseLevelInfo * @param data2 - second FactionsStarbaseLevelInfo * @returns boolean */ export declare function factionsStarbaseLevelInfoEqual(data1: FactionsStarbaseLevelInfo, data2: FactionsStarbaseLevelInfo): boolean; /** * Check if two `StarbaseUpkeepInfo` instances are equal * @param data1 - first StarbaseUpkeepInfo * @param data2 - second StarbaseUpkeepInfo * @returns boolean */ export declare function starbaseUpkeepInfoEquals(data1: StarbaseUpkeepInfo, data2: StarbaseUpkeepInfo): boolean; /** * Check if two `StarbaseUpkeepLevels` instances are equal * @param data1 - first StarbaseUpkeepLevels * @param data2 - second StarbaseUpkeepLevels * @returns boolean */ export declare function starbaseUpkeepLevelsEquals(data1: StarbaseUpkeepLevels, data2: StarbaseUpkeepLevels): boolean; export declare const DEFAULT_RISK_ZONE: RiskZoneData; export declare const DEFAULT_RISK_ZONES: RiskZonesData; export declare enum RiskZones { MudSecurityZone = 0, OniSecurityZone = 1, UsturSecurityZone = 2, HighRiskZone = 3, MediumRiskZone = 4 } /** * Check if two `RiskZoneData` instances are equal * @param data1 - first RiskZoneData * @param data2 - second RiskZoneData * @returns boolean */ export declare function riskZoneEquals(data1: RiskZoneData, data2: RiskZoneData): boolean; /** * Check if two `RiskZonesData` instances are equal * @param data1 - first RiskZonesData * @param data2 - second RiskZonesData * @returns boolean */ export declare function riskZonesEquals(data1: RiskZonesData, data2: RiskZonesData): boolean; /** * Check if two `GameAccount` instances are equal * @param gameData1 - first GameAccount * @param gameData2 - second GameAccount * @returns boolean */ export declare function gameDataEquals(gameData1: GameAccount, gameData2: GameAccount): boolean; export declare const FLEET_POINT_MODIFIER_MIN_DATA_SIZE: number; export declare const POINTS_MIN_DATA_SIZE: number; export declare const CARGO_MIN_DATA_SIZE = 32; export declare const CRAFTING_MIN_DATA_SIZE = 32; export declare const STAR_BASE_LEVEL_INFO_MIN_DATA_SIZE: number; export declare const STAR_BASE_UPKEEP_INFO_MIN_DATA_SIZE: number; export declare const FLEET_INFO_MIN_DATA_SIZE: number; export declare const MINTS_MIN_DATA_SIZE: number; export declare const VAULTS_MIN_DATA_SIZE: number; export declare const MISC_VARIABLES_MIN_DATA_SIZE: number; export declare const RISK_ZONES_MIN_DATA_SIZE: number; export declare class Game implements Account { private readonly _data; private readonly _key; static readonly ACCOUNT_NAME: NonNullable[number]['name']; static readonly MIN_DATA_SIZE: number; constructor(_data: GameAccount, _key: PublicKey); static MIN_STAR_BASE_LEVEL: number; static MAX_STAR_BASE_LEVEL: number; get data(): Readonly; get key(): PublicKey; /** * Find the fleet PointsModifier account address * @param program - SAGE program * @param gameId - the SAGE game id * @param pointsCategory - the points category * @returns The PDA and bump respectively */ static findPointsModifierAddress(program: SageIDLProgram, gameId: PublicKey, pointsCategory: PublicKey): [PublicKey, number]; /** * Create a new Game account * @param program - SAGE program * @param signer - the authority for the new game * @param profile - the profile with the required permissions for the instruction * @param gameId - the SAGE game id * @returns InstructionReturn */ static initGame(program: SageIDLProgram, signer: AsyncSigner, profile: PublicKey, gameId: AsyncSigner): InstructionReturn; /** * Update a Game account * @param gameId - the SAGE game id * @param program - SAGE program * @param key - the key authorized to run this instruction * @param profile - the profile with the required permissions for the instruction * @param keyIndex - the index of the key in the profile permissions * @param pointCategories - point category settings * @param pointCategories.lpCategory - points category to use for Loyalty Points (LP) * @param pointCategories.councilRankXpCategory - points category to use for Council Rank Experience Points (CRXP) * @param pointCategories.pilotXpCategory - points category to use for Pilot License Experience Points (PXP) * @param pointCategories.dataRunningXpCategory - points category to use for Data Running Experience Points (DRXP) * @param pointCategories.miningXpCategory - points category to use for Mining Experience Points (MXP) * @param pointCategories.craftingXpCategory - points category to use for Crafting Experience Points (CXP) * @param pointCategories.combatXpCategory - points category to use for Combat Experience Points (CXP) * @param mints - mint settings * @param mints.atlas - atlas token mint * @param mints.polis - polis token mint * @param mints.ammo - ammo token mint * @param mints.food - food token mint * @param mints.fuel - fuel token mint * @param mints.repairKit - repair kit token mint * @param vaults - vault settings * @param vaults.atlas - atlas vault (token account) * @param vaults.polis - polis vault (token account) * @param crafting - crafting settings * @param crafting.domain - crafting domain * @param cargo - cargo settings * @param cargo.statsDefinition - cargo stats definition * @param riskZones - risk zone definitions * @returns InstructionReturn */ static updateGame(gameId: PublicKey, program: SageIDLProgram, key: AsyncSigner, profile: PublicKey, keyIndex: number, pointCategories?: { lpCategory?: PublicKey; councilRankXpCategory?: PublicKey; pilotXpCategory?: PublicKey; dataRunningXpCategory?: PublicKey; miningXpCategory?: PublicKey; craftingXpCategory?: PublicKey; combatXpCategory?: PublicKey; }, mints?: { atlas?: PublicKey; polis?: PublicKey; ammo?: PublicKey; food?: PublicKey; fuel?: PublicKey; repairKit?: PublicKey; }, vaults?: { atlas?: PublicKey; polis?: PublicKey; }, crafting?: { domain?: PublicKey; }, cargo?: { statsDefinition?: PublicKey; }, riskZones?: RiskZonesData): InstructionReturn; /** * Register the SAGE points modifier for a points category account * @param program - SAGE program * @param pointsProgram - the Points program * @param key - the key authorized to run this instruction * @param profile - the profile with the required permissions for the instruction * @param gameId - the SAGE game id * @param pointsCategory - the points category whose modifier is being registered * @param pointsCategoryType - the category type * @param keyIndex - the SAGE game id * @returns InstructionReturn */ static registerSagePointModifier(program: SageIDLProgram, pointsProgram: PointsIDLProgram, key: AsyncSigner, profile: PublicKey, gameId: PublicKey, pointsCategory: PublicKey, pointsCategoryType: PointsCategoryType, keyIndex: number): { modifierKey: [PublicKey, number]; instructions: InstructionReturn; }; static decodeData(account: KeyedAccountInfo, program: SageIDLProgram): DecodedAccountData; } //# sourceMappingURL=game.d.ts.map