diff --git a/.eslintrc b/.eslintrc index dc83cd5b..9c2b88f9 100644 --- a/.eslintrc +++ b/.eslintrc @@ -11,7 +11,6 @@ "node": true }, "rules": { - "@typescript-eslint/no-misused-promises": "off", "prettier/prettier": "error", "@typescript-eslint/semi": ["error"], "@typescript-eslint/explicit-function-return-type": "off", diff --git a/config.json b/config.json index d0c662ae..5d15dcf4 100644 --- a/config.json +++ b/config.json @@ -1,7 +1,9 @@ { - "autoCreateAccount": true, - "buildLabel": "2023.05.25.13.39/oZkc-RIme5c1CCltUfg2gQ", - "matchmakingBuildId": "4920386201513015989", - "version": "33.0.14", - "worldSeed": "GWvLyHiw7/Qr/60056xmAmDrn0Y9et2S3BYlLSkLDNBMtumSr3KxWV8He5Jz72yYq3tsY+cd53QeTf+bb54+llGTbYiQF+64BtiLWMVhWP1IUaP4SxWHXojlpQC13op/udHI1whc+8zrxEzzZmv/QlpvigAAbjBDtwu97Df0vgn+YrOKi4G3OhgIkTRocAAzD1P/BGbT8gaKE01H8rXl3+Gq6jCA1O1v800SL6DwKOgMsXVvWp7g2n/tPxJe/j9bmu4XFG0bSa5y5hikLKxvntA/5ut+iogv4MyMBe+TydVxjPqNbkKnby5l4KAL+3inpuPraeg4jcNMt0AwKG8NIQ==" + "autoCreateAccount": true, + "buildLabel": "2023.05.25.13.39/oZkc-RIme5c1CCltUfg2gQ", + "matchmakingBuildId": "4920386201513015989", + "version": "33.0.14", + "worldSeed": "GWvLyHiw7/Qr/60056xmAmDrn0Y9et2S3BYlLSkLDNBMtumSr3KxWV8He5Jz72yYq3tsY+cd53QeTf+bb54+llGTbYiQF+64BtiLWMVhWP1IUaP4SxWHXojlpQC13op/udHI1whc+8zrxEzzZmv/QlpvigAAbjBDtwu97Df0vgn+YrOKi4G3OhgIkTRocAAzD1P/BGbT8gaKE01H8rXl3+Gq6jCA1O1v800SL6DwKOgMsXVvWp7g2n/tPxJe/j9bmu4XFG0bSa5y5hikLKxvntA/5ut+iogv4MyMBe+TydVxjPqNbkKnby5l4KAL+3inpuPraeg4jcNMt0AwKG8NIQ==", + "skipStoryModeChoice": true, + "skipTutorial": true } diff --git a/src/controllers/api/inventoryController.ts b/src/controllers/api/inventoryController.ts index 47ba5d25..c7ad069c 100644 --- a/src/controllers/api/inventoryController.ts +++ b/src/controllers/api/inventoryController.ts @@ -1,11 +1,29 @@ -import inventory from "@/static/fixed_responses/inventory.json"; +/* eslint-disable @typescript-eslint/no-misused-promises */ +import { toInventoryResponse } from "@/src/helpers/inventoryHelpers"; +import { Inventory } from "@/src/models/inventoryModel"; import { Request, RequestHandler, Response } from "express"; -const inventoryController: RequestHandler = (request: Request, response: Response) => { - console.log(request.query); +const inventoryController: RequestHandler = async (request: Request, response: Response) => { const accountId = request.query.accountId; + + if (!accountId) { + response.status(400).json({ error: "accountId was not provided" }); + return; + } console.log(accountId); - response.json(inventory); + + const inventory = await Inventory.findOne({ accountOwnerId: accountId }); + + if (!inventory) { + response.status(400).json({ error: "inventory was undefined" }); + return; + } + + const inventoryJSON = inventory.toJSON(); + + const inventoreResponse = toInventoryResponse(inventoryJSON); + + response.json(inventoreResponse); }; export { inventoryController }; diff --git a/src/controllers/api/loginController.ts b/src/controllers/api/loginController.ts index efaa750a..7819df06 100644 --- a/src/controllers/api/loginController.ts +++ b/src/controllers/api/loginController.ts @@ -13,11 +13,8 @@ const loginController: RequestHandler = async (request, response) => { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-argument const body = JSON.parse(request.body); // parse octet stream of json data to json object const loginRequest = toLoginRequest(body); - // console.log(body); - //console.log(String.fromCharCode.apiRouterly(null, req.body)); const account = await Account.findOne({ email: loginRequest.email }); //{ _id: 0, __v: 0 } - console.log("findone", account); if (!account && config.autoCreateAccount) { try { @@ -32,7 +29,8 @@ const loginController: RequestHandler = async (request, response) => { ConsentNeeded: false, TrackedSettings: [] }); - console.log("CREATED ACCOUNT", newAccount); + console.log("creating new account"); + // eslint-disable-next-line @typescript-eslint/no-unused-vars const { email, password, ...databaseAccount } = newAccount; const newLoginResponse: ILoginResponse = { ...databaseAccount, @@ -47,7 +45,6 @@ const loginController: RequestHandler = async (request, response) => { MatchmakingBuildId: config.matchmakingBuildId }; - console.log(newLoginResponse); response.json(newLoginResponse); return; } catch (error: unknown) { @@ -77,7 +74,6 @@ const loginController: RequestHandler = async (request, response) => { MatchmakingBuildId: config.matchmakingBuildId }; - console.log("login response", newLoginResponse); response.json(newLoginResponse); }; diff --git a/src/helpers/inventoryHelpers.ts b/src/helpers/inventoryHelpers.ts new file mode 100644 index 00000000..7879c007 --- /dev/null +++ b/src/helpers/inventoryHelpers.ts @@ -0,0 +1,9 @@ +import { IInventoryDatabase, IInventoryResponse } from "@/src/types/inventoryTypes"; + +const toInventoryResponse = (inventoryDatabase: IInventoryDatabase): IInventoryResponse => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const { accountOwnerId, ...inventoreResponse } = inventoryDatabase; + return inventoreResponse; +}; + +export { toInventoryResponse }; diff --git a/src/models/inventoryModel.ts b/src/models/inventoryModel.ts new file mode 100644 index 00000000..bdc2065d --- /dev/null +++ b/src/models/inventoryModel.ts @@ -0,0 +1,258 @@ +import { Document, Schema, model } from "mongoose"; +import { IInventoryDatabase, IInventoryResponse, ISuitDatabase, ISuitDocument, Oid } from "../types/inventoryTypes"; + +const polaritySchema = new Schema({ + Slot: Number, + Value: String +}); + +const abilityOverrideSchema = new Schema({ + Ability: String, + Index: Number +}); + +const colorSchema = new Schema({ + t0: Number, + t1: Number, + t2: Number, + t3: Number, + en: Number, + e1: Number, + m0: Number, + m1: Number +}); + +const suitConfigSchema = new Schema({ + Skins: [String], + pricol: colorSchema, + attcol: colorSchema, + eyecol: colorSchema, + sigcol: colorSchema, + Upgrades: [String], + Songs: [ + { + m: String, + b: String, + p: String, + s: String + } + ], + Name: String, + AbilityOverride: abilityOverrideSchema, + PvpUpgrades: [String], + ugly: Boolean +}); + +suitConfigSchema.set("toJSON", { + transform(_document, returnedObject) { + delete returnedObject._id; + delete returnedObject.__v; + } +}); + +const suitSchema = new Schema({ + ItemType: String, + Configs: [suitConfigSchema], + UpgradeVer: Number, + XP: Number, + InfestationDate: Date, + Features: Number, + Polarity: [polaritySchema], + Polarized: Number, + ModSlotPurchases: Number, + FocusLens: String, + UnlockLevel: Number +}); + +suitSchema.set("toJSON", { + transform(_document, returnedObject: ISuitDocument) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call + returnedObject.ItemId = { $oid: returnedObject._id.toString() } satisfies Oid; + delete returnedObject._id; + delete returnedObject.__v; + } +}); + +const inventorySchema = new Schema({ + accountOwnerId: Schema.Types.ObjectId, + SubscribedToEmails: Number, + Created: Schema.Types.Mixed, + RewardSeed: Number, + RegularCredits: Number, + PremiumCredits: Number, + PremiumCreditsFree: Number, + FusionPoints: Number, + SuitBin: Schema.Types.Mixed, + WeaponBin: Schema.Types.Mixed, + SentinelBin: Schema.Types.Mixed, + SpaceSuitBin: Schema.Types.Mixed, + SpaceWeaponBin: Schema.Types.Mixed, + PvpBonusLoadoutBin: Schema.Types.Mixed, + PveBonusLoadoutBin: Schema.Types.Mixed, + RandomModBin: Schema.Types.Mixed, + TradesRemaining: Number, + DailyAffiliation: Number, + DailyAffiliationPvp: Number, + DailyAffiliationLibrary: Number, + DailyFocus: Number, + GiftsRemaining: Number, + HandlerPoints: Number, + MiscItems: [Schema.Types.Mixed], + ChallengesFixVersion: Number, + ChallengeProgress: [Schema.Types.Mixed], + RawUpgrades: [Schema.Types.Mixed], + ReceivedStartingGear: Boolean, + Suits: [suitSchema], + LongGuns: [Schema.Types.Mixed], + Pistols: [Schema.Types.Mixed], + Melee: [Schema.Types.Mixed], + Ships: [Schema.Types.Mixed], + QuestKeys: [Schema.Types.Mixed], + FlavourItems: [Schema.Types.Mixed], + Scoops: [Schema.Types.Mixed], + TrainingRetriesLeft: Number, + LoadOutPresets: Schema.Types.Mixed, + CurrentLoadOutIds: [Schema.Types.Mixed], + Missions: [Schema.Types.Mixed], + RandomUpgradesIdentified: Number, + LastRegionPlayed: String, + XPInfo: [Schema.Types.Mixed], + Recipes: [Schema.Types.Mixed], + WeaponSkins: [Schema.Types.Mixed], + PendingRecipes: [Schema.Types.Mixed], + TrainingDate: Schema.Types.Mixed, + PlayerLevel: Number, + Upgrades: [Schema.Types.Mixed], + EquippedGear: [String], + DeathMarks: [String], + FusionTreasures: [Schema.Types.Mixed], + WebFlags: Schema.Types.Mixed, + CompletedAlerts: [String], + Consumables: [Schema.Types.Mixed], + LevelKeys: [Schema.Types.Mixed], + TauntHistory: [Schema.Types.Mixed], + StoryModeChoice: String, + PeriodicMissionCompletions: [Schema.Types.Mixed], + KubrowPetEggs: [Schema.Types.Mixed], + LoreFragmentScans: [Schema.Types.Mixed], + EquippedEmotes: [String], + PendingTrades: [Schema.Types.Mixed], + Boosters: [Schema.Types.Mixed], + ActiveDojoColorResearch: String, + SentientSpawnChanceBoosters: Schema.Types.Mixed, + Affiliations: [Schema.Types.Mixed], + QualifyingInvasions: [Schema.Types.Mixed], + FactionScores: [Number], + SpaceSuits: [Schema.Types.Mixed], + SpaceMelee: [Schema.Types.Mixed], + SpaceGuns: [Schema.Types.Mixed], + ArchwingEnabled: Boolean, + PendingSpectreLoadouts: [Schema.Types.Mixed], + SpectreLoadouts: [Schema.Types.Mixed], + SentinelWeapons: [Schema.Types.Mixed], + Sentinels: [Schema.Types.Mixed], + EmailItems: [Schema.Types.Mixed], + CompletedSyndicates: [String], + FocusXP: Schema.Types.Mixed, + Wishlist: [String], + Alignment: Schema.Types.Mixed, + CompletedSorties: [String], + LastSortieReward: [Schema.Types.Mixed], + Drones: [Schema.Types.Mixed], + StepSequencers: [Schema.Types.Mixed], + ActiveAvatarImageType: String, + KubrowPets: [Schema.Types.Mixed], + ShipDecorations: [Schema.Types.Mixed], + OperatorAmpBin: Schema.Types.Mixed, + DailyAffiliationCetus: Number, + DailyAffiliationQuills: Number, + DiscoveredMarkers: [Schema.Types.Mixed], + CompletedJobs: [Schema.Types.Mixed], + FocusAbility: String, + FocusUpgrades: [Schema.Types.Mixed], + OperatorAmps: [Schema.Types.Mixed], + HasContributedToDojo: Boolean, + HWIDProtectEnabled: Boolean, + KubrowPetPrints: [Schema.Types.Mixed], + AlignmentReplay: Schema.Types.Mixed, + PersonalGoalProgress: [Schema.Types.Mixed], + DailyAffiliationSolaris: Number, + SpecialItems: [Schema.Types.Mixed], + ThemeStyle: String, + ThemeBackground: String, + ThemeSounds: String, + BountyScore: Number, + ChallengeInstanceStates: [Schema.Types.Mixed], + LoginMilestoneRewards: [String], + OperatorLoadOuts: [Schema.Types.Mixed], + DailyAffiliationVentkids: Number, + DailyAffiliationVox: Number, + RecentVendorPurchases: [Schema.Types.Mixed], + Hoverboards: [Schema.Types.Mixed], + NodeIntrosCompleted: [String], + CompletedJobChains: [Schema.Types.Mixed], + SeasonChallengeHistory: [Schema.Types.Mixed], + MoaPets: [Schema.Types.Mixed], + EquippedInstrument: String, + InvasionChainProgress: [Schema.Types.Mixed], + DataKnives: [Schema.Types.Mixed], + NemesisHistory: [Schema.Types.Mixed], + LastNemesisAllySpawnTime: Schema.Types.Mixed, + Settings: Schema.Types.Mixed, + PersonalTechProjects: [Schema.Types.Mixed], + CrewShips: [Schema.Types.Mixed], + CrewShipSalvageBin: Schema.Types.Mixed, + PlayerSkills: Schema.Types.Mixed, + CrewShipAmmo: [Schema.Types.Mixed], + CrewShipSalvagedWeaponSkins: [Schema.Types.Mixed], + CrewShipWeapons: [Schema.Types.Mixed], + CrewShipSalvagedWeapons: [Schema.Types.Mixed], + CrewShipWeaponSkins: [Schema.Types.Mixed], + TradeBannedUntil: Schema.Types.Mixed, + PlayedParkourTutorial: Boolean, + SubscribedToEmailsPersonalized: Number, + MechBin: Schema.Types.Mixed, + DailyAffiliationEntrati: Number, + DailyAffiliationNecraloid: Number, + MechSuits: [Schema.Types.Mixed], + InfestedFoundry: Schema.Types.Mixed, + BlessingCooldown: Schema.Types.Mixed, + CrewMemberBin: Schema.Types.Mixed, + CrewShipHarnesses: [Schema.Types.Mixed], + CrewShipRawSalvage: [Schema.Types.Mixed], + CrewMembers: [Schema.Types.Mixed], + AdultOperatorLoadOuts: [Schema.Types.Mixed], + LotusCustomization: Schema.Types.Mixed, + UseAdultOperatorLoadout: Boolean, + DailyAffiliationZariman: Number, + NemesisAbandonedRewards: [String], + DailyAffiliationKahl: Number, + LastInventorySync: Schema.Types.Mixed, + NextRefill: Schema.Types.Mixed, + ActiveLandscapeTraps: [Schema.Types.Mixed], + EvolutionProgress: [Schema.Types.Mixed], + RepVotes: [Schema.Types.Mixed], + LeagueTickets: [Schema.Types.Mixed], + Quests: [Schema.Types.Mixed], + Robotics: [Schema.Types.Mixed], + UsedDailyDeals: [Schema.Types.Mixed], + LibraryPersonalProgress: [Schema.Types.Mixed], + CollectibleSeries: [Schema.Types.Mixed], + LibraryAvailableDailyTaskInfo: Schema.Types.Mixed, + HasResetAccount: Boolean, + PendingCoupon: Schema.Types.Mixed, + Harvestable: Boolean, + DeathSquadable: Boolean +}); + +inventorySchema.set("toJSON", { + transform(_document, returnedObject: ISuitDocument) { + delete returnedObject._id; + delete returnedObject.__v; + } +}); + +const Suit = model("Suit", suitSchema); +const Inventory = model("Inventory", inventorySchema); + +export { Inventory, Suit }; diff --git a/src/services/inventoryService.ts b/src/services/inventoryService.ts new file mode 100644 index 00000000..36f49d06 --- /dev/null +++ b/src/services/inventoryService.ts @@ -0,0 +1,25 @@ +import { Inventory } from "@/src/models/inventoryModel"; +import new_inventory from "@/static/fixed_responses/postTutorialInventory.json"; +import config from "@/config.json"; +import { Types } from "mongoose"; + +const createInventory = async (accountOwnerId: Types.ObjectId) => { + try { + const inventory = new Inventory({ ...new_inventory, accountOwnerId: accountOwnerId }); + if (config.skipStoryModeChoice) { + inventory.StoryModeChoice = "WARFRAME"; + } + if (config.skipTutorial) { + inventory.PlayedParkourTutorial = true; + inventory.ReceivedStartingGear = true; + } + await inventory.save(); + } catch (error) { + if (error instanceof Error) { + throw new Error(`error creating inventory" ${error.message}`); + } + throw new Error("error creating inventory that is not of instance Error"); + } +}; + +export { createInventory }; diff --git a/src/services/loginService.ts b/src/services/loginService.ts index 8e5d1da2..c110d491 100644 --- a/src/services/loginService.ts +++ b/src/services/loginService.ts @@ -1,4 +1,5 @@ import { Account } from "@/src/models/loginModel"; +import { createInventory } from "@/src/services/inventoryService"; import { IDatabaseAccount } from "@/src/types/loginTypes"; const isCorrectPassword = (requestPassword: string, databasePassword: string): boolean => { @@ -6,10 +7,10 @@ const isCorrectPassword = (requestPassword: string, databasePassword: string): b }; const createAccount = async (accountData: IDatabaseAccount) => { - console.log("test", accountData); const account = new Account(accountData); try { await account.save(); + await createInventory(account._id); return account.toJSON(); } catch (error) { if (error instanceof Error) { diff --git a/src/types/inventoryTypes.ts b/src/types/inventoryTypes.ts new file mode 100644 index 00000000..70bac7ce --- /dev/null +++ b/src/types/inventoryTypes.ts @@ -0,0 +1,1232 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ + +import { Document, Types } from "mongoose"; + +export interface IInventoryDatabase extends IInventoryResponse { + accountOwnerId: Types.ObjectId; +} + +export interface IInventoryResponse { + SubscribedToEmails: number; + Created: Date; + RewardSeed: number; + RegularCredits: number; + PremiumCredits: number; + PremiumCreditsFree: number; + FusionPoints: number; + SuitBin: CrewShipSalvageBinClass; + WeaponBin: CrewShipSalvageBinClass; + SentinelBin: CrewShipSalvageBinClass; + SpaceSuitBin: CrewShipSalvageBinClass; + SpaceWeaponBin: CrewShipSalvageBinClass; + PvpBonusLoadoutBin: CrewMemberBinClass; + PveBonusLoadoutBin: CrewShipSalvageBinClass; + RandomModBin: CrewShipSalvageBinClass; + TradesRemaining: number; + DailyAffiliation: number; + DailyAffiliationPvp: number; + DailyAffiliationLibrary: number; + DailyFocus: number; + GiftsRemaining: number; + HandlerPoints: number; + MiscItems: Consumable[]; + ChallengesFixVersion: number; + ChallengeProgress: ChallengeProgress[]; + RawUpgrades: RawUpgrade[]; + ReceivedStartingGear: boolean; + Suits: ISuitDatabase[]; + LongGuns: LongGun[]; + Pistols: LongGun[]; + Melee: Melee[]; + Ships: Ship[]; + QuestKeys: QuestKey[]; + FlavourItems: FlavourItem[]; + Scoops: Scoop[]; + TrainingRetriesLeft: number; + LoadOutPresets: LoadOutPresets; + CurrentLoadOutIds: Array; + Missions: Mission[]; + RandomUpgradesIdentified: number; + LastRegionPlayed: string; + XPInfo: EmailItem[]; + Recipes: Consumable[]; + WeaponSkins: WeaponSkin[]; + PendingRecipes: PendingRecipe[]; + TrainingDate: Date; + PlayerLevel: number; + Upgrades: CrewShipSalvagedWeaponSkin[]; + EquippedGear: string[]; + DeathMarks: string[]; + FusionTreasures: FusionTreasure[]; + WebFlags: WebFlags; + CompletedAlerts: string[]; + Consumables: Consumable[]; + LevelKeys: Consumable[]; + TauntHistory: TauntHistory[]; + StoryModeChoice: string; + PeriodicMissionCompletions: PeriodicMissionCompletion[]; + KubrowPetEggs: KubrowPetEgg[]; + LoreFragmentScans: LoreFragmentScan[]; + EquippedEmotes: string[]; + PendingTrades: PendingTrade[]; + Boosters: Booster[]; + ActiveDojoColorResearch: string; + SentientSpawnChanceBoosters: SentientSpawnChanceBoosters; + Affiliations: Affiliation[]; + QualifyingInvasions: any[]; + FactionScores: number[]; + SpaceSuits: Space[]; + SpaceMelee: Space[]; + SpaceGuns: SpaceGun[]; + ArchwingEnabled: boolean; + PendingSpectreLoadouts: any[]; + SpectreLoadouts: SpectreLoadout[]; + SentinelWeapons: SentinelWeapon[]; + Sentinels: Sentinel[]; + EmailItems: EmailItem[]; + CompletedSyndicates: string[]; + FocusXP: FocusXP; + Wishlist: string[]; + Alignment: Alignment; + CompletedSorties: string[]; + LastSortieReward: LastSortieReward[]; + Drones: Drone[]; + StepSequencers: StepSequencer[]; + ActiveAvatarImageType: string; + KubrowPets: KubrowPet[]; + ShipDecorations: Consumable[]; + OperatorAmpBin: CrewShipSalvageBinClass; + DailyAffiliationCetus: number; + DailyAffiliationQuills: number; + DiscoveredMarkers: DiscoveredMarker[]; + CompletedJobs: CompletedJob[]; + FocusAbility: string; + FocusUpgrades: FocusUpgrade[]; + OperatorAmps: OperatorAmp[]; + HasContributedToDojo: boolean; + HWIDProtectEnabled: boolean; + KubrowPetPrints: KubrowPetPrint[]; + AlignmentReplay: Alignment; + PersonalGoalProgress: PersonalGoalProgress[]; + DailyAffiliationSolaris: number; + SpecialItems: SpecialItem[]; + ThemeStyle: string; + ThemeBackground: string; + ThemeSounds: string; + BountyScore: number; + ChallengeInstanceStates: ChallengeInstanceState[]; + LoginMilestoneRewards: string[]; + OperatorLoadOuts: OperatorLoadOut[]; + DailyAffiliationVentkids: number; + DailyAffiliationVox: number; + RecentVendorPurchases: Array; + Hoverboards: Hoverboard[]; + NodeIntrosCompleted: string[]; + CompletedJobChains: CompletedJobChain[]; + SeasonChallengeHistory: SeasonChallengeHistory[]; + MoaPets: MoaPet[]; + EquippedInstrument: string; + InvasionChainProgress: InvasionChainProgress[]; + DataKnives: DataKnife[]; + NemesisHistory: NemesisHistory[]; + LastNemesisAllySpawnTime: Date; + Settings: Settings; + PersonalTechProjects: PersonalTechProject[]; + CrewShips: CrewShip[]; + CrewShipSalvageBin: CrewShipSalvageBinClass; + PlayerSkills: PlayerSkills; + CrewShipAmmo: Consumable[]; + CrewShipSalvagedWeaponSkins: CrewShipSalvagedWeaponSkin[]; + CrewShipWeapons: CrewShipWeapon[]; + CrewShipSalvagedWeapons: CrewShipWeapon[]; + CrewShipWeaponSkins: CrewShipSalvagedWeaponSkin[]; + TradeBannedUntil: Date; + PlayedParkourTutorial: boolean; + SubscribedToEmailsPersonalized: number; + MechBin: CrewMemberBinClass; + DailyAffiliationEntrati: number; + DailyAffiliationNecraloid: number; + MechSuits: MechSuit[]; + InfestedFoundry: InfestedFoundry; + BlessingCooldown: Date; + CrewMemberBin: CrewMemberBinClass; + CrewShipHarnesses: CrewShipHarness[]; + CrewShipRawSalvage: Consumable[]; + CrewMembers: CrewMember[]; + AdultOperatorLoadOuts: AdultOperatorLoadOut[]; + LotusCustomization: LotusCustomization; + UseAdultOperatorLoadout: boolean; + DailyAffiliationZariman: number; + NemesisAbandonedRewards: string[]; + DailyAffiliationKahl: number; + LastInventorySync: Oid; + NextRefill: Date; + ActiveLandscapeTraps: any[]; + EvolutionProgress: any[]; + RepVotes: any[]; + LeagueTickets: any[]; + Quests: any[]; + Robotics: any[]; + UsedDailyDeals: any[]; + LibraryPersonalProgress: LibraryPersonalProgress[]; + CollectibleSeries: CollectibleSery[]; + LibraryAvailableDailyTaskInfo: LibraryAvailableDailyTaskInfo; + HasResetAccount: boolean; + PendingCoupon: PendingCoupon; + Harvestable: boolean; + DeathSquadable: boolean; +} + +export interface AdultOperatorLoadOut { + Skins: string[]; + attcol: Color; + eyecol: Color; + facial: Color; + pricol: Color; + Upgrades?: string[]; + ItemId: Oid; +} + +export interface Oid { + $oid: string; +} + +export interface Color { + t0?: number; + t1?: number; + t2?: number; + t3?: number; + en?: number; + e1?: number; + m0?: number; + m1?: number; +} + +export interface Affiliation { + Initiated?: boolean; + Standing: number; + Title?: number; + FreeFavorsEarned?: number[]; + FreeFavorsUsed?: number[]; + Tag: string; +} + +export interface Alignment { + Wisdom: number; + Alignment: number; +} + +export interface Date { + $date: { $numberLong: string }; +} + +export interface Booster { + ExpiryDate: number; + ItemType: string; +} + +export interface ChallengeInstanceState { + id: Oid; + Progress: number; + params: Param[]; + IsRewardCollected: boolean; +} + +export interface Param { + n: string; + v: string; +} + +export interface ChallengeProgress { + Progress: number; + Name: string; + Completed?: string[]; +} + +export interface CollectibleSery { + CollectibleType: string; + Count: number; + Tracking: string; + ReqScans: number; + IncentiveStates: IncentiveState[]; +} + +export interface IncentiveState { + threshold: number; + complete: boolean; + sent: boolean; +} + +export interface CompletedJobChain { + LocationTag: string; + Jobs: string[]; +} + +export interface CompletedJob { + JobId: string; + StageCompletions: number[]; +} + +export interface Consumable { + ItemCount: number; + ItemType: string; +} + +export interface CrewMemberBinClass { + Slots: number; +} + +export interface CrewMember { + ItemType: string; + NemesisFingerprint: number; + Seed: number; + HireDate: Date; + AssignedRole: number; + SkillEfficiency: SkillEfficiency; + WeaponConfigIdx: number; + WeaponId: Oid; + XP: number; + PowersuitType: string; + Configs: CrewMemberConfig[]; + SecondInCommand: boolean; + ItemId: Oid; +} + +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface CrewMemberConfig {} + +export interface SkillEfficiency { + PILOTING: Combat; + GUNNERY: Combat; + ENGINEERING: Combat; + COMBAT: Combat; + SURVIVABILITY: Combat; +} + +export interface Combat { + Assigned: number; +} + +export interface CrewShipHarness { + ItemType: string; + Configs: CrewShipHarnessConfig[]; + Features: number; + UpgradeVer: number; + XP: number; + Polarity: Polarity[]; + Polarized: number; + ItemId: Oid; +} + +export interface CrewShipHarnessConfig { + Upgrades?: string[]; +} + +export interface Polarity { + Slot: number; + Value: FocusSchool; +} + +export enum FocusSchool { + ApAny = "AP_ANY", + ApAttack = "AP_ATTACK", + ApDefense = "AP_DEFENSE", + ApPower = "AP_POWER", + ApPrecept = "AP_PRECEPT", + ApTactic = "AP_TACTIC", + ApUmbra = "AP_UMBRA", + ApUniversal = "AP_UNIVERSAL", + ApWard = "AP_WARD" +} + +export interface CrewShipSalvageBinClass { + Extra: number; + Slots: number; +} + +export interface CrewShipSalvagedWeaponSkin { + ItemType: string; + UpgradeFingerprint?: string; + ItemId: Oid; +} + +export interface CrewShipWeapon { + ItemType: string; + UpgradeType?: string; + UpgradeFingerprint?: string; + Configs?: CrewShipHarnessConfig[]; + UpgradeVer?: number; + ItemId: Oid; +} + +export interface CrewShip { + ItemType: string; + Configs: CrewShipConfig[]; + Weapon: Weapon; + Customization: Customization; + ItemName: string; + RailjackImage: FlavourItem; + CrewMembers: CrewMembers; + ItemId: Oid; +} + +export interface CrewShipConfig { + Skins?: string[]; + pricol?: Color; +} + +export interface CrewMembers { + SLOT_A: Slot; + SLOT_B: Slot; + SLOT_C: Slot; +} + +export interface Slot { + ItemId: Oid; +} + +export interface Customization { + CrewshipInterior: Terior; +} + +export interface Terior { + SkinFlavourItem: string; + Colors: Color; + ShipAttachments?: ShipAttachments; +} + +export interface ShipAttachments { + HOOD_ORNAMENT: string; +} + +export interface FlavourItem { + ItemType: string; +} + +export interface Weapon { + PILOT: Pilot; + PORT_GUNS: PortGuns; +} + +export interface Pilot { + PRIMARY_A: L; + SECONDARY_A: L; +} + +export interface L { + ItemId?: Oid; + mod?: number; + cus?: number; + ItemType?: string; + hide?: boolean; +} + +export interface PortGuns { + PRIMARY_A: L; +} + +export interface DataKnife { + ItemType: string; + XP: number; + Configs: DataKnifeConfig[]; + UpgradeVer: number; + ItemId: Oid; +} + +export interface DataKnifeConfig { + Upgrades?: string[]; + pricol?: Color; + Skins: string[]; + attcol?: Color; + sigcol?: Color; +} + +export interface DiscoveredMarker { + tag: string; + discoveryState: number[]; +} + +export interface Drone { + ItemType: string; + CurrentHP: number; + ItemId: Oid; + RepairStart?: Date; +} + +export interface EmailItem { + ItemType: string; + XP: number; +} + +export interface FocusUpgrade { + ItemType: string; + Level?: number; + IsUniversal?: boolean; +} + +export interface FocusXP { + AP_POWER: number; + AP_TACTIC: number; + AP_DEFENSE: number; + AP_ATTACK: number; + AP_WARD: number; +} + +export interface FusionTreasure { + ItemCount: number; + ItemType: string; + Sockets: number; +} + +export interface Hoverboard { + ItemType: string; + Configs: HoverboardConfig[]; + ModularParts: string[]; + ItemName?: string; + Polarity?: Polarity[]; + UpgradeVer: number; + XP: number; + Features: number; + ItemId: Oid; +} + +export interface HoverboardConfig { + Upgrades?: string[]; + Skins?: PurpleSkin[]; + pricol?: Color; + sigcol?: Sigcol; + attcol?: Color; +} + +export enum PurpleSkin { + Empty = "", + The5Be4Af71A38E4A9306040E15 = "5be4af71a38e4a9306040e15", + The5C930Ac3A38E4A24Bc3Ad5De = "5c930ac3a38e4a24bc3ad5de", + The5C9C6F9857904A7A3B25656B = "5c9c6f9857904a7a3b25656b", + The5Dd8A8E3A38E4A321A45E6A0 = "5dd8a8e3a38e4a321a45e6a0" +} + +export interface Sigcol { + t3: number; +} + +export interface InfestedFoundry { + Name: string; + Resources: Resource[]; + Slots: number; + XP: number; + ConsumedSuits: ConsumedSuit[]; + InvigorationIndex: number; + InvigorationSuitOfferings: string[]; + InvigorationsApplied: number; +} + +export interface ConsumedSuit { + s: string; + c?: Color; +} + +export interface Resource { + ItemType: string; + Count: number; +} + +export interface InvasionChainProgress { + id: Oid; + count: number; +} + +export interface KubrowPetEgg { + ItemType: KubrowPetEggItemType; + ExpirationDate: Date; + ItemId: Oid; +} + +export enum KubrowPetEggItemType { + LotusTypesGameKubrowPetEggsKubrowEgg = "/Lotus/Types/Game/KubrowPet/Eggs/KubrowEgg" +} + +export interface KubrowPetPrint { + ItemType: KubrowPetPrintItemType; + Name: string; + IsMale: boolean; + Size: number; + DominantTraits: Traits; + RecessiveTraits: Traits; + ItemId: Oid; + InheritedModularParts?: any[]; +} + +export interface Traits { + BaseColor: string; + SecondaryColor: string; + TertiaryColor: string; + AccentColor: string; + EyeColor: string; + FurPattern: string; + Personality: string; + BodyType: string; + Head?: string; + Tail?: Tail; +} + +export enum Tail { + Empty = "", + LotusTypesGameCatbrowPetTailsCatbrowTailA = "/Lotus/Types/Game/CatbrowPet/Tails/CatbrowTailA", + LotusTypesGameCatbrowPetTailsCatbrowTailB = "/Lotus/Types/Game/CatbrowPet/Tails/CatbrowTailB", + LotusTypesGameCatbrowPetTailsCatbrowTailC = "/Lotus/Types/Game/CatbrowPet/Tails/CatbrowTailC", + LotusTypesGameCatbrowPetTailsCatbrowTailD = "/Lotus/Types/Game/CatbrowPet/Tails/CatbrowTailD" +} + +export enum KubrowPetPrintItemType { + LotusTypesGameKubrowPetImprintedTraitPrint = "/Lotus/Types/Game/KubrowPet/ImprintedTraitPrint" +} + +export interface KubrowPet { + ItemType: string; + Configs: KubrowPetConfig[]; + UpgradeVer: number; + Details: Details; + XP?: number; + Polarized?: number; + Polarity?: Polarity[]; + Features?: number; + InfestationDate?: Date; + InfestationDays?: number; + InfestationType?: string; + ItemId: Oid; + ModularParts?: string[]; +} + +export interface KubrowPetConfig { + Skins?: string[]; + pricol?: Color; + attcol?: Color; + Upgrades?: string[]; +} + +export interface Details { + Name: string; + IsPuppy: boolean; + HasCollar: boolean; + PrintsRemaining: number; + Status: Status; + HatchDate: Date; + DominantTraits: Traits; + RecessiveTraits: Traits; + IsMale: boolean; + Size: number; +} + +export enum Status { + StatusAvailable = "STATUS_AVAILABLE", + StatusStasis = "STATUS_STASIS" +} + +export interface LastSortieReward { + SortieId: Oid; + StoreItem: string; + Manifest: string; +} + +export interface LibraryAvailableDailyTaskInfo { + EnemyTypes: string[]; + EnemyLocTag: string; + EnemyIcon: string; + ScansRequired: number; + RewardStoreItem: string; + RewardQuantity: number; + RewardStanding: number; +} + +export interface LibraryPersonalProgress { + TargetType: string; + Scans: number; + Completed: boolean; +} + +export interface LoadOutPresets { + NORMAL: Normal[]; + NORMAL_PVP: Archwing[]; + LUNARO: Lunaro[]; + ARCHWING: Archwing[]; + SENTINEL: Archwing[]; + OPERATOR: Archwing[]; + GEAR: Gear[]; + KDRIVE: Kdrive[]; + DATAKNIFE: Archwing[]; + MECH: Mech[]; + OPERATOR_ADULT: Archwing[]; +} + +export interface Archwing { + PresetIcon: string; + Favorite: boolean; + n?: string; + s: L; + l?: L; + m?: L; + ItemId: Oid; + p?: L; +} + +export interface Gear { + n: string; + s: L; + p: L; + l: L; + m: L; + ItemId: Oid; +} + +export interface Kdrive { + PresetIcon: string; + Favorite: boolean; + s: L; + ItemId: Oid; +} + +export interface Lunaro { + n: string; + s: L; + m: L; + ItemId: Oid; +} + +export interface Mech { + PresetIcon: string; + Favorite: boolean; + s: L; + h: L; + a: L; + ItemId: Oid; +} + +export interface Normal { + FocusSchool: FocusSchool; + PresetIcon: string; + Favorite: boolean; + n: string; + s: L; + p: L; + l: L; + m: L; + h: L; + a?: L; + ItemId: Oid; +} + +export interface LongGun { + ItemType: string; + Configs: LongGunConfig[]; + UpgradeVer?: number; + XP?: number; + Features?: number; + ItemId: Oid; + Polarized?: number; + Polarity?: Polarity[]; + FocusLens?: string; + ModSlotPurchases?: number; + UpgradeType?: UpgradeType; + UpgradeFingerprint?: string; + ItemName?: string; + ModularParts?: string[]; + UnlockLevel?: number; +} + +export interface LongGunConfig { + Upgrades?: string[]; + Skins?: string[]; + pricol?: Color; + attcol?: Color; + PvpUpgrades?: string[]; + Name?: string; +} + +export enum UpgradeType { + LotusWeaponsGrineerKuvaLichUpgradesInnateDamageRandomMod = "/Lotus/Weapons/Grineer/KuvaLich/Upgrades/InnateDamageRandomMod" +} + +export interface LoreFragmentScan { + Progress: number; + Region?: string; + ItemType: string; +} + +export interface LotusCustomization { + Upgrades: any[]; + PvpUpgrades: any[]; + Skins: string[]; + pricol: Color; + attcol: any[]; + sigcol: any[]; + eyecol: any[]; + facial: any[]; + Songs: any[]; + Persona: string; +} + +export interface MechSuit { + ItemType: string; + Configs: DataKnifeConfig[]; + Features: number; + UpgradeVer: number; + XP: number; + Polarity: Polarity[]; + Polarized: number; + ItemId: Oid; +} + +export interface Melee { + ItemType: string; + Configs: MeleeConfig[]; + UpgradeVer?: number; + XP?: number; + Features?: number; + Polarity?: Polarity[]; + Polarized?: number; + ModSlotPurchases?: number; + ItemId: Oid; + FocusLens?: string; + ModularParts?: string[]; + ItemName?: string; + UpgradeType?: UpgradeType; + UpgradeFingerprint?: string; + UnlockLevel?: number; +} + +export interface MeleeConfig { + Skins?: string[]; + pricol?: Color; + Upgrades?: string[]; + attcol?: Color; + eyecol?: OperatorLoadOutSigcol; + Name?: string; + PvpUpgrades?: string[]; +} + +export interface OperatorLoadOutSigcol { + t0?: number; + t1?: number; + en?: number; +} + +export interface Mission { + Completes: number; + Tier?: number; + Tag: string; + RewardsCooldownTime?: Date; +} + +export interface MoaPet { + ItemType: string; + Configs: KubrowPetConfig[]; + UpgradeVer: number; + ModularParts: string[]; + XP?: number; + Features?: number; + ItemName: string; + Polarity?: Polarity[]; + ItemId: Oid; +} + +export interface NemesisHistory { + fp: number; + manifest: Manifest; + KillingSuit: string; + killingDamageType: number; + ShoulderHelmet: string; + AgentIdx: number; + BirthNode: BirthNode; + Rank: number; + k: boolean; + d: Date; + GuessHistory?: number[]; + currentGuess?: number; + Traded?: boolean; + PrevOwners?: number; + SecondInCommand?: boolean; + Faction?: string; + Weakened?: boolean; +} + +export enum BirthNode { + SolNode181 = "SolNode181", + SolNode4 = "SolNode4", + SolNode70 = "SolNode70", + SolNode76 = "SolNode76" +} + +export enum Manifest { + LotusTypesEnemiesCorpusLawyersLawyerManifest = "/Lotus/Types/Enemies/Corpus/Lawyers/LawyerManifest", + LotusTypesGameNemesisKuvaLichKuvaLichManifest = "/Lotus/Types/Game/Nemesis/KuvaLich/KuvaLichManifest", + LotusTypesGameNemesisKuvaLichKuvaLichManifestVersionThree = "/Lotus/Types/Game/Nemesis/KuvaLich/KuvaLichManifestVersionThree", + LotusTypesGameNemesisKuvaLichKuvaLichManifestVersionTwo = "/Lotus/Types/Game/Nemesis/KuvaLich/KuvaLichManifestVersionTwo" +} + +export interface OperatorAmp { + ItemType: string; + Configs: KubrowPetConfig[]; + ModularParts?: string[]; + XP?: number; + UpgradeVer?: number; + ItemName?: string; + Features?: number; + ItemId: Oid; +} + +export interface OperatorLoadOut { + Skins: string[]; + pricol?: Color; + attcol?: Color; + eyecol: Color; + facial?: Color; + sigcol?: OperatorLoadOutSigcol; + OperatorAmp?: Oid; + Upgrades?: string[]; + AbilityOverride: AbilityOverride; + ItemId: Oid; +} + +export interface AbilityOverride { + Ability: string; + Index: number; +} + +export interface PendingCoupon { + Expiry: Date; + Discount: number; +} + +export interface PendingRecipe { + ItemType: string; + CompletionDate: Date; + ItemId: Oid; +} + +export interface PendingTrade { + State: number; + SelfReady: boolean; + BuddyReady: boolean; + Giving?: Giving; + Revision: number; + Getting: Getting; + ItemId: Oid; + ClanTax?: number; +} + +export interface Getting { + RandomUpgrades?: RandomUpgrade[]; + _SlotOrderInfo: GettingSlotOrderInfo[]; + PremiumCredits?: number; +} + +export interface RandomUpgrade { + UpgradeFingerprint: UpgradeFingerprint; + ItemType: string; + ItemId: Oid; +} + +export interface UpgradeFingerprint { + compat: string; + lim: number; + lvlReq: number; + pol: FocusSchool; + buffs: Buff[]; + curses: Buff[]; +} + +export interface Buff { + Tag: string; + Value: number; +} + +export enum GettingSlotOrderInfo { + Empty = "", + LotusUpgradesModsRandomizedPlayerMeleeWeaponRandomModRare0 = "/Lotus/Upgrades/Mods/Randomized/PlayerMeleeWeaponRandomModRare:0", + P = "P" +} + +export interface Giving { + RawUpgrades: Consumable[]; + _SlotOrderInfo: GivingSlotOrderInfo[]; +} + +export enum GivingSlotOrderInfo { + Empty = "", + LotusTypesSentinelsSentinelPreceptsItemVacum = "/Lotus/Types/Sentinels/SentinelPrecepts/ItemVacum", + LotusUpgradesModsPistolDualStatElectEventPistolMod = "/Lotus/Upgrades/Mods/Pistol/DualStat/ElectEventPistolMod" +} + +export interface PeriodicMissionCompletion { + date: Date; + tag: string; + count?: number; +} + +export interface PersonalGoalProgress { + Count: number; + Tag: string; + Best?: number; + _id: Oid; + ReceivedClanReward0?: boolean; + ReceivedClanReward1?: boolean; +} + +export interface PersonalTechProject { + State: number; + ReqCredits: number; + ItemType: string; + ReqItems: Consumable[]; + CompletionDate?: Date; + ItemId: Oid; + ProductCategory?: string; + CategoryItemId?: Oid; + HasContributions?: boolean; +} + +export interface PlayerSkills { + LPP_SPACE: number; + LPS_GUNNERY: number; + LPS_PILOTING: number; + LPS_ENGINEERING: number; + LPS_TACTICAL: number; + LPS_COMMAND: number; +} + +export interface QuestKey { + Progress: Progress[]; + unlock: boolean; + Completed: boolean; + ItemType: string; + CompletionDate?: Date; +} + +export interface Progress { + c: number; + i: boolean; + m: boolean; + b?: any[]; +} + +export interface RawUpgrade { + ItemCount: number; + LastAdded: Oid; + ItemType: string; +} + +export interface Scoop { + ItemType: string; + Configs: ScoopConfig[]; + UpgradeVer: number; + ItemId: Oid; +} + +export interface ScoopConfig { + pricol?: Color; +} + +export interface SeasonChallengeHistory { + challenge: string; + id: string; +} + +export interface SentientSpawnChanceBoosters { + numOceanMissionsCompleted: number; +} + +export interface SentinelWeapon { + ItemType: string; + Configs: SentinelWeaponConfig[]; + UpgradeVer?: number; + XP?: number; + ItemId: Oid; + Features?: number; + Polarity?: Polarity[]; + Polarized?: number; +} + +export interface SentinelWeaponConfig { + Skins?: FluffySkin[]; + Upgrades?: string[]; +} + +export enum FluffySkin { + Empty = "", + LotusUpgradesSkinsHolsterCustomizationsGlaiveInPlace = "/Lotus/Upgrades/Skins/HolsterCustomizations/GlaiveInPlace", + LotusUpgradesSkinsHolsterCustomizationsPistolHipsR = "/Lotus/Upgrades/Skins/HolsterCustomizations/PistolHipsR", + LotusUpgradesSkinsHolsterCustomizationsRifleUpperBack = "/Lotus/Upgrades/Skins/HolsterCustomizations/RifleUpperBack" +} + +export interface Sentinel { + ItemType: string; + Configs: KubrowPetConfig[]; + UpgradeVer: number; + XP: number; + Features?: number; + Polarity?: Polarity[]; + Polarized?: number; + ItemId: Oid; +} + +export interface Settings { + FriendInvRestriction: string; + GiftMode: string; + GuildInvRestriction: string; + ShowFriendInvNotifications: boolean; + TradingRulesConfirmed: boolean; +} + +export interface Ship { + ItemType: string; + ShipExterior: Terior; + AirSupportPower: string; + ItemId: Oid; +} + +export interface SpaceGun { + ItemType: string; + Configs: SpaceGunConfig[]; + XP?: number; + UpgradeVer?: number; + ItemId: Oid; + Features?: number; + Polarized?: number; + Polarity?: Polarity[]; + UpgradeType?: UpgradeType; + UpgradeFingerprint?: string; + ItemName?: string; +} + +export interface SpaceGunConfig { + Skins?: string[]; + pricol?: Color; + Upgrades?: string[]; +} + +export interface Space { + ItemType: string; + Configs: KubrowPetConfig[]; + XP: number; + UpgradeVer: number; + ItemId: Oid; + Features?: number; +} + +export interface SpecialItem { + ItemType: string; + Configs: SpecialItemConfig[]; + XP?: number; + UpgradeVer?: number; + Features: number; + ItemId: Oid; + Polarized?: number; + Polarity?: Polarity[]; + ModSlotPurchases?: number; +} + +export interface SpecialItemConfig { + Upgrades?: string[]; + pricol?: Color; + Skins?: string[]; + attcol?: Color; + eyecol?: PurpleCol; + sigcol?: PurpleCol; + Name?: string; +} + +export interface PurpleCol { + en: number; +} + +export interface SpectreLoadout { + LongGuns: string; + Melee: string; + Pistols: string; + PistolsFeatures: number; + PistolsModularParts: string[]; + Suits: string; + ItemType: string; +} + +export interface StepSequencer { + NotePacks: NotePacks; + FingerPrint: string; + Name: string; + ItemId: Oid; +} + +export interface NotePacks { + MELODY: string; + BASS: string; + PERCUSSION: string; +} + +export interface ISuitDocument extends ISuitDatabase, Document {} + +export interface ISuitResponse extends ISuitDatabase { + ItemId: Oid; +} + +export interface ISuitDatabase { + ItemType: string; + Configs: SuitConfig[]; + UpgradeVer?: number; + XP?: number; + InfestationDate?: Date; + Features?: number; + Polarity?: Polarity[]; + Polarized?: number; + ModSlotPurchases?: number; + ItemId: Oid; + FocusLens?: string; + UnlockLevel?: number; +} + +export interface SuitConfig { + Skins?: string[]; + pricol?: Color; + attcol?: Color; + eyecol?: Color; + sigcol?: Color; + Upgrades?: string[]; + Songs?: Song[]; + Name?: string; + AbilityOverride?: AbilityOverride; + PvpUpgrades?: string[]; + ugly?: boolean; +} + +export interface Song { + m?: string; + b?: string; + p?: string; + s: string; +} + +export interface TauntHistory { + node: string; + state: string; +} + +export interface WeaponSkin { + ItemType: string; + ItemId: Oid; +} + +export interface WebFlags { + activeBuyPlat: number; + noShow2FA: boolean; + Tennocon2018Digital: boolean; + VisitPrimeAccess: Date; + VisitTennocon2019: Date; + enteredSC2019: Date; + VisitPrimeVault: Date; + VisitBuyPlatinum: Date; + ClickedSku_640_Page__en_buyplatinum: Date; + ClickedSku_640_Page__buyplatinum: Date; + VisitStarterPack: Date; + Tennocon2020Digital: boolean; + Anniversary2021: boolean; + HitDownloadBtn: Date; +} diff --git a/static/fixed_responses/new_inventory.json b/static/fixed_responses/new_inventory.json new file mode 100644 index 00000000..8c112a7a --- /dev/null +++ b/static/fixed_responses/new_inventory.json @@ -0,0 +1,121 @@ +{ + "SubscribedToEmails": 0, + "Created": { "$date": { "$numberLong": "1685829131" } }, + "SubscribedToEmailsPersonalized": 0, + "RewardSeed": -5604904486637265640, + "CrewMemberBin": { "Slots": 3 }, + "CrewShipSalvageBin": { "Slots": 8 }, + "DrifterMelee": [{ "ItemType": "/Lotus/Types/Friendly/PlayerControllable/Weapons/DuviriDualSwords", "ItemId": { "$oid": "647bb619e15fa43f0ee4b1b1" } }], + "FusionPoints": 0, + "MechBin": { "Slots": 4 }, + "OperatorAmpBin": { "Slots": 8 }, + "PveBonusLoadoutBin": { "Slots": 0 }, + "PvpBonusLoadoutBin": { "Slots": 0 }, + "RandomModBin": { "Slots": 15 }, + "RegularCredits": 0, + "SentinelBin": { "Slots": 10 }, + "SpaceSuitBin": { "Slots": 4 }, + "SpaceWeaponBin": { "Slots": 4 }, + "SuitBin": { "Slots": 2 }, + "WeaponBin": { "Slots": 8 }, + "LastInventorySync": { "$oid": "647bb5d79f963c9d24668257" }, + "NextRefill": { "$date": { "$numberLong": "1685829131" } }, + "ActiveLandscapeTraps": [], + "ChallengeProgress": [], + "CrewMembers": [], + "CrewShips": [], + "CrewShipHarnesses": [], + "CrewShipSalvagedWeapons": [], + "CrewShipSalvagedWeaponSkins": [], + "CrewShipWeapons": [], + "CrewShipWeaponSkins": [], + "DataKnives": [], + "DrifterGuns": [], + "Drones": [], + "Horses": [], + "Hoverboards": [], + "KubrowPets": [], + "KubrowPetEggs": [], + "KubrowPetPrints": [], + "LongGuns": [], + "MechSuits": [], + "Melee": [], + "MoaPets": [], + "OperatorAmps": [], + "OperatorLoadOuts": [], + "AdultOperatorLoadOuts": [], + "KahlLoadOuts": [], + "PendingRecipes": [], + "PersonalGoalProgress": [], + "PersonalTechProjects": [], + "Pistols": [], + "QualifyingInvasions": [], + "RepVotes": [], + "Scoops": [], + "Sentinels": [], + "SentinelWeapons": [], + "Ships": [], + "SpaceGuns": [], + "SpaceMelee": [], + "SpaceSuits": [], + "SpecialItems": [], + "StepSequencers": [], + "Suits": [], + "Upgrades": [], + "WeaponSkins": [], + "Boosters": [], + "Consumables": [], + "EmailItems": [], + "FlavourItems": [], + "FocusUpgrades": [], + "FusionTreasures": [], + "LeagueTickets": [], + "LevelKeys": [], + "LoreFragmentScans": [], + "MiscItems": [], + "PendingSpectreLoadouts": [], + "Quests": [], + "QuestKeys": [], + "RawUpgrades": [], + "Recipes": [], + "Robotics": [], + "ShipDecorations": [], + "SpectreLoadouts": [], + "XPInfo": [], + "CrewShipAmmo": [], + "CrewShipRawSalvage": [], + "EvolutionProgress": [], + "Missions": [], + "TauntHistory": [], + "CompletedSyndicates": [], + "UsedDailyDeals": [], + "DailyAffiliation": 16000, + "DailyAffiliationPvp": 16000, + "DailyAffiliationLibrary": 16000, + "DailyAffiliationCetus": 16000, + "DailyAffiliationQuills": 16000, + "DailyAffiliationSolaris": 16000, + "DailyAffiliationVentkids": 16000, + "DailyAffiliationVox": 16000, + "DailyAffiliationEntrati": 16000, + "DailyAffiliationNecraloid": 16000, + "DailyAffiliationZariman": 16000, + "DailyAffiliationKahl": 16000, + "DailyFocus": 250000, + "GiftsRemaining": 8, + "LibraryAvailableDailyTaskInfo": { + "EnemyTypes": ["/Lotus/Types/Enemies/Orokin/OrokinBladeSawmanAvatar"], + "EnemyLocTag": "/Lotus/Language/Game/OrokinBladeSawman", + "EnemyIcon": "/Lotus/Interface/Icons/Npcs/Orokin/OrokinBladeSawman.png", + "ScansRequired": 4, + "RewardStoreItem": "/Lotus/StoreItems/Upgrades/Mods/FusionBundles/UncommonFusionBundle", + "RewardQuantity": 10, + "RewardStanding": 10000 + }, + "DuviriInfo": { "Seed": 5898912197983600352, "NumCompletions": 0 }, + "TradesRemaining": 0, + "HasContributedToDojo": false, + "HasResetAccount": false, + "PendingCoupon": { "Expiry": { "$date": { "$numberLong": "0" } }, "Discount": 0 }, + "PremiumCreditsFree": 0 +} diff --git a/static/fixed_responses/postTutorialInventory.json b/static/fixed_responses/postTutorialInventory.json new file mode 100644 index 00000000..1c2d8721 --- /dev/null +++ b/static/fixed_responses/postTutorialInventory.json @@ -0,0 +1,145 @@ +{ + "SubscribedToEmails": 0, + "Created": { "$date": { "$numberLong": "1685829131" } }, + "SubscribedToEmailsPersonalized": 0, + "RewardSeed": -5604904486637265640, + "CrewMemberBin": { "Slots": 3 }, + "CrewShipSalvageBin": { "Slots": 8 }, + "DrifterMelee": [{ "ItemType": "/Lotus/Types/Friendly/PlayerControllable/Weapons/DuviriDualSwords", "ItemId": { "$oid": "647bd268c547fe5b2909e715" } }], + "FusionPoints": 0, + "MechBin": { "Slots": 4 }, + "OperatorAmpBin": { "Slots": 8 }, + "PveBonusLoadoutBin": { "Slots": 0 }, + "PvpBonusLoadoutBin": { "Slots": 0 }, + "RandomModBin": { "Slots": 15 }, + "RegularCredits": 3000, + "SentinelBin": { "Slots": 10 }, + "SpaceSuitBin": { "Slots": 4 }, + "SpaceWeaponBin": { "Slots": 4 }, + "SuitBin": { "Slots": 1 }, + "WeaponBin": { "Slots": 5 }, + "DailyAffiliation": 16000, + "DailyAffiliationCetus": 16000, + "DailyAffiliationEntrati": 16000, + "DailyAffiliationKahl": 16000, + "DailyAffiliationLibrary": 16000, + "DailyAffiliationNecraloid": 16000, + "DailyAffiliationPvp": 16000, + "DailyAffiliationQuills": 16000, + "DailyAffiliationSolaris": 16000, + "DailyAffiliationVentkids": 16000, + "DailyAffiliationVox": 16000, + "DailyAffiliationZariman": 16000, + "DailyFocus": 250000, + "DuviriInfo": { "Seed": 5898912197983600352, "NumCompletions": 0 }, + "GiftsRemaining": 8, + "TradesRemaining": 0, + "Recipes": [{ "ItemCount": 1, "ItemType": "/Lotus/Types/Recipes/Weapons/BoltonfaBlueprint" }], + "SeasonChallengeHistory": [ + { "challenge": "SeasonDailySolveCiphers", "id": "001000220000000000000308" }, + { "challenge": "SeasonDailyVisitFeaturedDojo", "id": "001000230000000000000316" }, + { "challenge": "SeasonDailyKillEnemiesWithRadiation", "id": "001000230000000000000317" }, + { "challenge": "SeasonWeeklyCompleteSortie", "id": "001000230000000000000309" }, + { "challenge": "SeasonWeeklyVenusBounties", "id": "001000230000000000000310" }, + { "challenge": "SeasonWeeklyZarimanBountyHunter", "id": "001000230000000000000311" }, + { "challenge": "SeasonWeeklyCatchRarePlainsFish", "id": "001000230000000000000312" }, + { "challenge": "SeasonWeeklyKillArchgunEnemies", "id": "001000230000000000000313" }, + { "challenge": "SeasonWeeklyHardKillSilverGroveSpecters", "id": "001000230000000000000314" }, + { "challenge": "SeasonWeeklyHardKillRopalolyst", "id": "001000230000000000000315" } + ], + "StoryModeChoice": "WARFRAME", + "ChallengeProgress": [{ "Progress": 2, "Name": "EMGetKills" }], + "ChallengesFixVersion": 6, + "ActiveQuest": "/Lotus/Types/Keys/VorsPrize/VorsPrizeQuestKeyChain", + "Consumables": [{ "ItemCount": 1, "ItemType": "/Lotus/Types/Restoratives/LisetAutoHack" }], + "DataKnives": [{ "ItemType": "/Lotus/Weapons/Tenno/HackingDevices/TnHackingDevice/TnHackingDeviceWeapon", "XP": 450000, "ItemId": { "$oid": "647bd274f22fc794a2cd3d33" } }], + "FlavourItems": [ + { "ItemType": "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem1" }, + { "ItemType": "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem2" }, + { "ItemType": "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem3" }, + { "ItemType": "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem4" } + ], + "LongGuns": [{ "ItemType": "/Lotus/Weapons/MK1Series/MK1Paris", "XP": 0, "Configs": [{}, {}, {}], "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }], + "Melee": [{ "ItemType": "/Lotus/Weapons/Tenno/Melee/LongSword/LongSword", "XP": 0, "Configs": [{}, {}, {}], "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }], + "Pistols": [{ "ItemType": "/Lotus/Weapons/MK1Series/MK1Kunai", "XP": 0, "Configs": [{}, {}, {}], "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }], + "PlayedParkourTutorial": true, + "PremiumCreditsFree": 50, + "QuestKeys": [{ "ItemType": "/Lotus/Types/Keys/VorsPrize/VorsPrizeQuestKeyChain" }], + "RawUpgrades": [{ "ItemCount": 1, "LastAdded": { "$oid": "6450f9bfe0714a4d6703f05f" }, "ItemType": "/Lotus/Upgrades/Mods/Warframe/AvatarShieldMaxMod" }], + "ReceivedStartingGear": true, + "Scoops": [{ "ItemType": "/Lotus/Weapons/Tenno/Speedball/SpeedballWeaponTest", "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }], + "Ships": [{ "ItemType": "/Lotus/Types/Items/Ships/DefaultShip", "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }], + "Suits": [{ "ItemType": "/Lotus/Powersuits/Volt/Volt", "XP": 0, "Configs": [{}, {}, {}], "UpgradeVer": 101, "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }], + "TrainingRetriesLeft": 0, + "WeaponSkins": [{ "ItemType": "/Lotus/Upgrades/Skins/Volt/VoltHelmet", "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }], + "LastInventorySync": { "$oid": "647bd27cf856530b4f3bf343" }, + "NextRefill": { "$date": { "$numberLong": "1685829131" } }, + "ActiveLandscapeTraps": [], + "CrewMembers": [], + "CrewShips": [], + "CrewShipHarnesses": [], + "CrewShipSalvagedWeapons": [], + "CrewShipSalvagedWeaponSkins": [], + "CrewShipWeapons": [], + "CrewShipWeaponSkins": [], + "DrifterGuns": [], + "Drones": [], + "Horses": [], + "Hoverboards": [], + "KubrowPets": [], + "KubrowPetEggs": [], + "KubrowPetPrints": [], + "MechSuits": [], + "MoaPets": [], + "OperatorAmps": [], + "OperatorLoadOuts": [], + "AdultOperatorLoadOuts": [], + "KahlLoadOuts": [], + "PendingRecipes": [], + "PersonalGoalProgress": [], + "PersonalTechProjects": [], + "QualifyingInvasions": [], + "RepVotes": [], + "Sentinels": [], + "SentinelWeapons": [], + "SpaceGuns": [], + "SpaceMelee": [], + "SpaceSuits": [], + "SpecialItems": [], + "StepSequencers": [], + "Upgrades": [], + "Boosters": [], + "EmailItems": [], + "FocusUpgrades": [], + "FusionTreasures": [], + "LeagueTickets": [], + "LevelKeys": [], + "LoreFragmentScans": [], + "MiscItems": [], + "PendingSpectreLoadouts": [], + "Quests": [], + "Robotics": [], + "ShipDecorations": [], + "SpectreLoadouts": [], + "XPInfo": [], + "CrewShipAmmo": [], + "CrewShipRawSalvage": [], + "EvolutionProgress": [], + "Missions": [], + "TauntHistory": [], + "CompletedSyndicates": [], + "UsedDailyDeals": [], + "LibraryAvailableDailyTaskInfo": { + "EnemyTypes": ["/Lotus/Types/Enemies/Orokin/OrokinBladeSawmanAvatar"], + "EnemyLocTag": "/Lotus/Language/Game/OrokinBladeSawman", + "EnemyIcon": "/Lotus/Interface/Icons/Npcs/Orokin/OrokinBladeSawman.png", + "ScansRequired": 4, + "RewardStoreItem": "/Lotus/StoreItems/Upgrades/Mods/FusionBundles/UncommonFusionBundle", + "RewardQuantity": 10, + "RewardStanding": 10000 + }, + "HasContributedToDojo": false, + "HasResetAccount": false, + "PendingCoupon": { "Expiry": { "$date": { "$numberLong": "0" } }, "Discount": 0 }, + "PremiumCredits": 50 +}