SpaceNinjaServer/src/types/requestTypes.ts
2024-09-07 23:32:59 +03:00

154 lines
3.9 KiB
TypeScript

import { IOid } from "./commonTypes";
import { IEquipmentClient } from "@/src/types/inventoryTypes/commonInventoryTypes";
import {
IBooster,
IChallengeProgress,
IConsumable,
ICrewShipSalvagedWeaponSkin,
IEvolutionProgress,
IMiscItem,
ITypeCount,
IMission,
IRawUpgrade,
ISeasonChallenge,
TSolarMapRegion,
TEquipmentKey,
IFusionTreasure
} from "./inventoryTypes/inventoryTypes";
export interface IArtifactsRequest {
Upgrade: ICrewShipSalvagedWeaponSkin;
LevelDiff: number;
Cost: number;
FusionPointCost: number;
}
export interface IThemeUpdateRequest {
Style?: string;
Background?: string;
Sounds?: string;
}
export interface IAffiliationChange {
Tag: string;
Standing: number;
Title: number;
}
export interface IUpdateChallengeProgressRequest {
ChallengeProgress: IChallengeProgress[];
SeasonChallengeHistory: ISeasonChallenge[];
SeasonChallengeCompletions: ISeasonChallenge[];
}
export interface IMissionInventoryUpdateRequest {
rewardsMultiplier?: number;
ActiveBoosters?: IBooster[];
AffiliationChanges?: IAffiliationChange[];
Suits?: IEquipmentClient[];
LongGuns?: IEquipmentClient[];
Pistols?: IEquipmentClient[];
Melee?: IEquipmentClient[];
SpecialItems?: IEquipmentClient[];
Sentinels?: IEquipmentClient[];
SentinelWeapons?: IEquipmentClient[];
SpaceSuits?: IEquipmentClient[];
SpaceGuns?: IEquipmentClient[];
SpaceMelee?: IEquipmentClient[];
Hoverboards?: IEquipmentClient[];
OperatorAmps?: IEquipmentClient[];
MoaPets?: IEquipmentClient[];
FusionBundles?: ITypeCount[];
RawUpgrades?: IRawUpgrade[];
MiscItems?: IMiscItem[];
Consumables?: IConsumable[];
FusionTreasures?: IFusionTreasure[];
Recipes?: IConsumable[];
RegularCredits?: number;
ChallengeProgress?: IChallengeProgress[];
RewardInfo?: IMissionInventoryUpdateRequestRewardInfo;
Missions?: IMission;
EvolutionProgress?: IEvolutionProgress[];
LastRegionPlayed?: TSolarMapRegion;
FusionPoints?: number; // Not a part of the request, but we put it in this struct as an intermediate storage.
}
export interface IMissionInventoryUpdateRequestRewardInfo {
node: string;
VaultsCracked?: number; // for Spy missions
rewardTier?: number;
nightmareMode?: boolean;
useVaultManifest?: boolean;
EnemyCachesFound?: number;
toxinOk?: boolean;
lostTargetWave?: number;
defenseTargetCount?: number;
EOM_AFK?: number;
rewardQualifications?: string; // did a Survival for 5 minutes and this was "1"
PurgatoryRewardQualifications?: string;
rewardSeed?: number;
}
export interface IInventorySlotsRequest {
Bin: "PveBonusLoadoutBin";
}
export interface IUpdateGlyphRequest {
AvatarImageType: string;
AvatarImage: string;
}
export interface IUpgradesRequest {
Category: TEquipmentKey;
Weapon: IWeapon;
UpgradesToAttach: IUpgradesToAttach[];
UpgradesToDetach: IUpgradesToDetach[];
Cost: number;
UpgradeReq: string;
}
export interface IWeapon {
ItemType: string;
ItemId: IOid;
XP: number;
UpgradeVer: number;
UnlockLevel: number;
ExtraCapacity: number;
ExtraRemaining: number;
}
/*
export interface IUpgradesRequest {
ItemCategory: TEquipmentKey;
ItemId: IOid;
ItemFeatures: number;
UpgradeVersion: number;
Operations: IUpgradeOperation[];
}
*/
export interface IUpgradesToAttach {
ItemType: string;
ItemId: IOid;
UpgradeFingerprint: string;
Slot: number;
ParentId: IOid;
}
export interface IUpgradesToDetach {
ItemType: string;
ItemId: IOid;
UpgradeFingerprint: string;
Slot: number;
ParentId: IOid;
}
// export interface IUpgradeOperation {
// OperationType: string;
// UpgradeRequirement: string; // uniqueName of item being consumed
// PolarizeSlot: number;
// PolarizeValue: ArtifactPolarity;
// PolarityRemap: IPolarity[];
// }