SpaceNinjaServer/src/types/requestTypes.ts

219 lines
6.5 KiB
TypeScript
Raw Normal View History

import { IOid } from "./commonTypes";
import { ArtifactPolarity, IPolarity, IEquipmentClient } from "@/src/types/inventoryTypes/commonInventoryTypes";
2023-09-10 00:10:21 +04:00
import {
IBooster,
IChallengeProgress,
IEvolutionProgress,
2024-06-22 17:56:36 +02:00
ITypeCount,
2023-09-10 00:10:21 +04:00
IMission,
IRawUpgrade,
2024-06-22 18:40:51 +02:00
ISeasonChallenge,
TSolarMapRegion,
2024-07-03 23:01:35 +02:00
TEquipmentKey,
2025-01-24 14:13:21 +01:00
IFusionTreasure,
ICustomMarkers,
2025-01-31 17:24:42 +01:00
IPlayerSkills,
IQuestKeyDatabase,
ILoreFragmentScan,
IUpgradeClient,
ICollectibleEntry,
IDiscoveredMarker,
ILockedWeaponGroupClient,
ILoadOutPresets,
IInvasionProgressClient
2023-09-10 00:10:21 +04:00
} from "./inventoryTypes/inventoryTypes";
import { IGroup } from "./loginTypes";
2023-09-10 00:10:21 +04:00
export interface IAffiliationChange {
Tag: string;
Standing: number;
Title: number;
}
2025-01-24 14:13:21 +01:00
export type IMissionInventoryUpdateRequest = {
MiscItems?: ITypeCount[];
Recipes?: ITypeCount[];
FusionBundles?: ITypeCount[];
Consumables?: ITypeCount[];
FusionBundels?: ITypeCount[];
CrewShipRawSalvage?: ITypeCount[];
CrewShipAmmo?: ITypeCount[];
BonusMiscItems?: ITypeCount[];
EmailItems?: ITypeCount[];
ShipDecorations?: ITypeCount[];
SyndicateId?: string;
SortieId?: string;
SeasonChallengeCompletions?: ISeasonChallenge[];
2025-01-24 14:13:21 +01:00
AffiliationChanges?: IAffiliationChange[];
crossPlaySetting?: string;
2023-09-10 00:10:21 +04:00
rewardsMultiplier?: number;
2025-01-24 14:13:21 +01:00
GoalTag: string;
LevelKeyName: string;
KeyOwner?: string;
KeyRemovalHash?: string;
KeyToRemove?: string;
2023-09-10 00:10:21 +04:00
ActiveBoosters?: IBooster[];
RawUpgrades?: IRawUpgrade[];
2024-07-03 23:01:35 +02:00
FusionTreasures?: IFusionTreasure[];
2025-01-31 17:24:42 +01:00
QuestKeys?: Omit<IQuestKeyDatabase, "CompletionDate">[];
2023-09-10 00:10:21 +04:00
RegularCredits?: number;
2025-01-24 14:13:21 +01:00
MissionFailed: boolean;
MissionStatus: IMissionStatus;
AliveTime: number;
MissionTime: number;
2023-09-10 00:10:21 +04:00
Missions?: IMission;
LastRegionPlayed?: TSolarMapRegion;
2025-01-24 14:13:21 +01:00
GameModeId: number;
hosts: string[];
currentClients: unknown[];
ChallengeProgress: IChallengeProgress[];
PS: string;
ActiveDojoColorResearch: string;
RewardInfo?: IRewardInfo;
ReceivedCeremonyMsg: boolean;
LastCeremonyResetDate: number;
MissionPTS: number;
RepHash: string;
EndOfMatchUpload: boolean;
ObjectiveReached: boolean;
sharedSessionId: string;
FpsAvg: number;
FpsMin: number;
FpsMax: number;
FpsSamples: number;
EvolutionProgress?: IEvolutionProgress[];
2025-01-27 18:11:05 +01:00
FocusXpIncreases?: number[];
2025-01-31 17:03:14 +01:00
PlayerSkillGains: IPlayerSkills;
CustomMarkers?: ICustomMarkers[];
LoreFragmentScans?: ILoreFragmentScan[];
VoidTearParticipantsCurrWave?: {
Wave: number;
IsFinalWave: boolean;
Participants: IVoidTearParticipantInfo[];
};
LibraryScans?: {
EnemyType: string;
Count: number;
CodexScanCount: number;
Standing: number;
}[];
CollectibleScans?: ICollectibleEntry[];
Upgrades?: IUpgradeClient[]; // riven challenge progress
StrippedItems?: {
DropTable: string;
DROP_MOD?: number[];
DROP_BLUEPRINT?: number[];
}[];
DeathMarks?: string[];
Nemesis?: number;
Boosters?: IBooster[];
CapturedAnimals?: {
AnimalType: string;
CaptureRating: number;
NumTags: number;
NumExtraRewards: number;
Count: number;
}[];
DiscoveredMarkers?: IDiscoveredMarker[];
LockedWeaponGroup?: ILockedWeaponGroupClient; // sent when captured by zanuka
UnlockWeapons?: boolean; // sent when recovered weapons from zanuka capture
IncHarvester?: boolean; // sent when recovered weapons from zanuka capture
CurrentLoadOutIds?: {
LoadOuts?: ILoadOutPresets; // sent when recovered weapons from zanuka capture
};
wagerTier?: number; // the index
creditsFee?: number; // the index
InvasionProgress?: IInvasionProgressClient[];
ConquestMissionsCompleted?: number;
duviriSuitSelection?: string;
duviriPistolSelection?: string;
duviriLongGunSelection?: string;
duviriMeleeSelection?: string;
duviriCaveOffers?: {
Seed: number | bigint;
Warframes: string[];
Weapons: string[];
};
} & {
[K in TEquipmentKey]?: IEquipmentClient[];
2025-01-24 14:13:21 +01:00
};
2024-06-22 17:56:36 +02:00
2025-01-24 14:13:21 +01:00
export interface IRewardInfo {
2023-09-10 00:10:21 +04:00
node: string;
invasionId?: string;
invasionAllyFaction?: "FC_GRINEER" | "FC_CORPUS";
sortieId?: string;
sortieTag?: string;
sortiePrereqs?: string[];
2024-06-22 23:19:42 +02:00
VaultsCracked?: number; // for Spy missions
rewardTier?: number;
2023-09-10 00:10:21 +04:00
nightmareMode?: boolean;
useVaultManifest?: boolean;
EnemyCachesFound?: number;
toxinOk?: boolean;
lostTargetWave?: number;
defenseTargetCount?: number;
NemesisAbandonedRewards?: string[];
2023-09-10 00:10:21 +04:00
EOM_AFK?: number;
rewardQualifications?: string; // did a Survival for 5 minutes and this was "1"
2023-09-10 00:10:21 +04:00
PurgatoryRewardQualifications?: string;
rewardSeed?: number | bigint;
periodicMissionTag?: string;
ConquestType?: string;
ConquestCompleted?: number;
ConquestEquipmentSuggestionsFulfilled?: number;
ConquestPersonalModifiersActive?: number;
ConquestStickersActive?: number;
ConquestHardModeActive?: number;
// for bounties, only EOM_AFK and node are given from above, plus:
JobTier?: number;
jobId?: string;
JobStage?: number;
Q?: boolean; // likely indicates that the bonus objective for this stage was completed
CheckpointCounter?: number; // starts at 1, is incremented with each job stage upload, and does not reset when starting a new job
challengeMissionId?: string;
2023-09-10 00:10:21 +04:00
}
2025-01-24 14:13:21 +01:00
export type IMissionStatus = "GS_SUCCESS" | "GS_FAILURE" | "GS_DUMPED" | "GS_QUIT" | "GS_INTERRUPTED";
export interface IUpgradesRequest {
2024-06-22 18:40:51 +02:00
ItemCategory: TEquipmentKey;
ItemId: IOid;
ItemFeatures: number;
UpgradeVersion: number;
Operations: IUpgradeOperation[];
}
export interface IUpgradeOperation {
OperationType: string;
UpgradeRequirement: string; // uniqueName of item being consumed
PolarizeSlot: number;
PolarizeValue: ArtifactPolarity;
PolarityRemap: IPolarity[];
}
2025-01-24 14:13:21 +01:00
export interface IUnlockShipFeatureRequest {
Feature: string;
KeyChain: string;
ChainStage: number;
}
export interface IVoidTearParticipantInfo {
AccountId: string;
Name: string;
ChosenRewardOwner: string;
MissionHash: string;
VoidProjection: string;
Reward: string;
QualifiesForReward: boolean;
HaveRewardResponse: boolean;
RewardsMultiplier: number;
RewardProjection: string;
HardModeReward: ITypeCount;
}
export interface IKeyChainRequest {
KeyChain: string;
ChainStage: number;
Groups?: IGroup[];
}