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

XFESpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 0 Star 0
UTF-8
import type { IColour, TRarity } from "warframe-public-export-plus";

export interface IExportCustoms {
    ExportCustoms: ICustom[];
}

export interface ICustom {
    uniqueName: string;
    name: string;
    codexSecret: boolean;
    description?: string;
    excludeFromCodex?: boolean;
}

export interface IExportDrones {
    ExportDrones: IDrone[];
}

export interface IDrone {
    uniqueName: string;
    name: string;
    description: string;
    binCount: number;
    binCapacity: number;
    fillRate: number;
    durability: number;
    repairRate: number;
    codexSecret: boolean;
    capacityMultiplier: number[];
    specialities: [];
}

export interface IExportFlavour {
    ExportFlavour: IFlavour[];
}

export interface IFlavour {
    uniqueName: string;
    name: string;
    description: string;
    codexSecret: boolean;
    excludeFromCodex?: boolean;
    hexColours?: readonly IColour[];
}

export interface IExportFusionBundles {
    ExportFusionBundles: IFusionBundle[];
}

export interface IFusionBundle {
    uniqueName: string;
    description: string;
    codexSecret: boolean;
    fusionPoints: number;
}

export interface IExportGear {
    ExportGear: IGear[];
}

export interface IGear {
    uniqueName: string;
    name: string;
    description: string;
    codexSecret: boolean;
    parentName: string;
}

export interface IExportKeys {
    ExportKeys: IKey[];
}

export interface IKey {
    uniqueName: string;
    name: string;
    description: string;
    parentName: string;
    codexSecret: boolean;
    excludeFromCodex?: boolean;
}

export interface IExportManifest {
    Manifest: IIconMapping[];
}

export interface IIconMapping {
    uniqueName: string;
    textureLocation: string;
}

export interface IExportRecipes {
    ExportRecipes: IRecipe[];
}

export interface IRecipe {
    uniqueName: string;
    resultType: string;
    buildPrice: number;
    buildTime: number;
    skipBuildTimePrice: number;
    consumeOnUse: boolean;
    num: number;
    codexSecret: boolean;
    ingredients: {
        ItemType: string;
        ItemCount: number;
        ProductCategory: string;
    }[];
    secretIngredients: readonly {
        ItemType: string;
        ItemCount: number;
    }[];
    excludeFromCodex?: boolean;
    primeSellingPrice?: number;
    alwaysAvailable?: boolean;
}

export interface IExportRegions {
    ExportRegions: IRegion[];
}

export interface IRegion {
    uniqueName: string;
    name: string;
    systemIndex: number;
    systemName: string;
    nodeType: number;
    masteryReq: number;
    missionIndex: number;
    factionIndex: number;
    minEnemyLevel: number;
    maxEnemyLevel: number;
}

export interface IExportRelicArcane {
    ExportRelicArcane: IRelicArcane[];
}

export interface IRelicArcane {
    uniqueName: string;
    name: string;
    codexSecret: boolean;
    description?: string;
    relicRewards?: {
        rewardName: string;
        rarity: TRarity;
        tier: number;
        itemCount: number;
    }[];
    rarity?: TRarity;
    levelStats?: {
        stats: string[];
    }[];
    excludeFromCodex?: boolean;
}

export interface IExportResources {
    ExportResources: IResource[];
}

export interface IResource {
    uniqueName: string;
    name: string;
    description: string;
    codexSecret: boolean;
    parentName: string;
    excludeFromCodex?: boolean;
    showInInventory?: boolean;
    longDescription?: string;
    primeSellingPrice?: number;
}
export interface IExportSentinels {
    ExportSentinels: ISentinel[];
}

export interface ISentinel {
    uniqueName: string;
    name: string;
    health: number;
    shield: number;
    armor: number;
    stamina: number;
    power: number;
    codexSecret: boolean;
    excludeFromCodex?: boolean;
    description: string;
    productCategory: string;
}

export interface IExportSortieRewards {
    ExportSortieRewards: ISortieReward[];
    ExportNightwave: IExportNightwave;
    ExportRailjack: IExportRailjack;
    ExportIntrinsics: IIntrinsic[];
    ExportOther: IOther[];
}

export interface IIntrinsic {
    name: string;
    ranks: {
        name: string;
        description: string;
    }[];
}

export interface IExportNightwave {
    affiliationTag: string;
    challenges: INightwaveChallenge[];
    rewards: INightwaveReward[];
}

export interface INightwaveChallenge {
    uniqueName: string;
    name: string;
    description: string;
    standing: number;
    required: number;
}

interface INightwaveReward {
    uniqueName: string;
    itemCount?: number;
    name?: string;
    description?: string;
    components?: string[];
}

interface IOther {
    uniqueName: string;
    name: string;
    description: string;
    excludeFromCodex?: boolean;
}

interface IExportRailjack {
    nodes: {
        uniqueName: string;
        name: string;
    }[];
}

export interface ISortieReward {
    rewardName: string;
    rarity: "COMMON";
    tier: number;
    itemCount: number;
    probability: number;
}

export interface IExportUpgrades {
    ExportUpgrades: IUpgrade[];
    ExportModSet: IModSet[];
    ExportAvionics: IAvionicsFocus[];
    ExportFocusUpgrades: IAvionicsFocus[];
}

type TPolarity =
    | "AP_ANY"
    | "AP_ATTACK"
    | "AP_DEFENSE"
    | "AP_POWER"
    | "AP_PRECEPT"
    | "AP_TACTIC"
    | "AP_UMBRA"
    | "AP_UNIVERSAL"
    | "AP_WARD";

export interface IAvionicsFocus {
    uniqueName: string;
    name: string;
    polarity: TPolarity;
    rarity: TRarity;
    codexSecret: boolean;
    baseDrain: number;
    fusionLimit: number;
    levelStats?: {
        stats: string[];
    }[];
    excludeFromCodex?: boolean;
}

export interface IModSet {
    uniqueName: string;
    numUpgradesInSet: number;
    stats: string[];
    buffSet?: boolean;
}

export interface IUpgrade {
    uniqueName: string;
    name: string;
    polarity: TPolarity;
    rarity: TRarity;
    codexSecret: boolean;
    baseDrain: number;
    fusionLimit: number;
    compatName?: string;
    type?: string;
    description?: readonly string[];
    isUtility?: boolean;
    levelStats?: readonly {
        stats: readonly string[];
    }[];
    modSet?: string;
    modSetValues?: readonly number[];
    subtype?: string;
    excludeFromCodex?: boolean;
    upgradeEntries?: readonly UpgradeEntry[];
    availableChallenges?: readonly AvailableChallenge[];
}

interface AvailableChallenge {
    fullName: string;
    description: string;
    complications: readonly Complication[];
}

interface Complication {
    fullName: string;
    description: string;
    overrideTag?: string;
}

interface UpgradeEntry {
    tag: string;
    prefixTag: string;
    suffixTag: string;
    upgradeValues: readonly UpgradeValue[];
}

interface UpgradeValue {
    value: number;
    locTag?: string;
    reverseValueSymbol?: boolean;
}

export interface IExportWarframes {
    ExportWarframes: IWarframe[];
    ExportAbilities: IAbility[];
}

export interface IAbility {
    abilityUniqueName: string;
    abilityName: string;
    description: string;
}

export interface IWarframe {
    uniqueName: string;
    name: string;
    parentName: string;
    description: string;
    health: number;
    shield: number;
    armor: number;
    stamina: number;
    power: number;
    codexSecret: boolean;
    masteryReq: number;
    sprintSpeed: number;
    abilities: readonly IAbility[];
    productCategory: string;
    passiveDescription?: string;
    exalted?: readonly string[];
    longDescription?: string;
}

export interface IExportWeapons {
    ExportWeapons: IWeapon[];
    ExportRailjackWeapons: IRailjackWeapon[];
}

type TNoise = "ALARMING" | "SILENT";

type TTrigger = "ACTIVE" | "AUTO" | "Auto Burst" | "BURST" | "CHARGE" | "DUPLEX" | "HELD" | "SEMI";

export interface IRailjackWeapon {
    name: string;
    uniqueName: string;
    codexSecret: boolean;
    damagePerShot: readonly number[];
    totalDamage: number;
    description: string;
    criticalChance: number;
    criticalMultiplier: number;
    procChance: number;
    fireRate: number;
    masteryReq: number;
    productCategory: "CrewShipWeapons";
    excludeFromCodex: boolean;
    slot: number;
    accuracy: number;
    omegaAttenuation: number;
    noise: TNoise;
    trigger: TTrigger;
    magazineSize: number;
    reloadTime: number;
    multishot: number;
}

export interface IWeapon {
    name: string;
    uniqueName: string;
    codexSecret: boolean;
    damagePerShot: readonly number[];
    totalDamage: number;
    description: string;
    criticalChance: number;
    criticalMultiplier: number;
    procChance: number;
    fireRate: number;
    masteryReq: number;
    productCategory: string;
    slot?: number;
    accuracy?: number;
    omegaAttenuation: number;
    noise?: TNoise;
    trigger?: TTrigger;
    magazineSize?: number;
    reloadTime?: number;
    multishot?: number;
    blockingAngle?: number;
    comboDuration?: number;
    followThrough?: number;
    range?: number;
    slamAttack?: number;
    slamRadialDamage?: number;
    slamRadius?: number;
    slideAttack?: number;
    heavyAttackDamage?: number;
    heavySlamAttack?: number;
    heavySlamRadialDamage?: number;
    heavySlamRadius?: number;
    windUp?: number;
    maxLevelCap?: number;
    sentinel?: boolean;
    excludeFromCodex?: boolean;
    primeOmegaAttenuation?: number;
}