XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

SpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 1 Star 0
UTF-8
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[];
// }