diff --git a/src/controllers/api/claimCompletedRecipeController.ts b/src/controllers/api/claimCompletedRecipeController.ts index 27267953..899ffcd4 100644 --- a/src/controllers/api/claimCompletedRecipeController.ts +++ b/src/controllers/api/claimCompletedRecipeController.ts @@ -21,11 +21,11 @@ export const claimCompletedRecipeController: RequestHandler = async (req, res) = const inventory = await getInventory(accountId); const pendingRecipe = inventory.PendingRecipes.find( - recipe => recipe._id?.toString() === claimCompletedRecipeRequest.RecipeIds[0].$oid + recipe => recipe._id?.toString() === claimCompletedRecipeRequest.RecipeIds[0].$id ); if (!pendingRecipe) { - logger.error(`no pending recipe found with id ${claimCompletedRecipeRequest.RecipeIds[0].$oid}`); - throw new Error(`no pending recipe found with id ${claimCompletedRecipeRequest.RecipeIds[0].$oid}`); + logger.error(`no pending recipe found with id ${claimCompletedRecipeRequest.RecipeIds[0].$id}`); + throw new Error(`no pending recipe found with id ${claimCompletedRecipeRequest.RecipeIds[0].$id}`); } //check recipe is indeed ready to be completed diff --git a/src/controllers/api/getCreditsController.ts b/src/controllers/api/getCreditsController.ts index 805b0505..e17fedae 100644 --- a/src/controllers/api/getCreditsController.ts +++ b/src/controllers/api/getCreditsController.ts @@ -16,8 +16,6 @@ export const getCreditsController: RequestHandler = async (req, res) => { if (config.infiniteResources) { res.json({ RegularCredits: 999999999, - TradesRemaining: 999999999, - PremiumCreditsFree: 999999999, PremiumCredits: 999999999 }); return; @@ -26,8 +24,6 @@ export const getCreditsController: RequestHandler = async (req, res) => { const inventory = await getInventory(accountId); res.json({ RegularCredits: inventory.RegularCredits, - TradesRemaining: inventory.TradesRemaining, - PremiumCreditsFree: inventory.PremiumCreditsFree, PremiumCredits: inventory.PremiumCredits }); }; diff --git a/src/controllers/api/getGuildDojoController.ts b/src/controllers/api/getGuildDojoController.ts index af60b492..89870007 100644 --- a/src/controllers/api/getGuildDojoController.ts +++ b/src/controllers/api/getGuildDojoController.ts @@ -28,7 +28,7 @@ export const getGuildDojoController: RequestHandler = async (req, res) => { } const dojo: IDojoClient = { - _id: { $oid: guildId }, + _id: { $id: guildId }, Name: guild.Name, Tier: 1, FixedContributions: true, diff --git a/src/controllers/api/giveStartingGearController.ts b/src/controllers/api/giveStartingGearController.ts new file mode 100644 index 00000000..08845943 --- /dev/null +++ b/src/controllers/api/giveStartingGearController.ts @@ -0,0 +1,14 @@ +import { getAccountIdForRequest } from "@/src/services/loginService"; +import { RequestHandler } from "express"; +import { getInventory } from "@/src/services/inventoryService"; + +// eslint-disable-next-line @typescript-eslint/no-misused-promises +export const giveStartingGearController: RequestHandler = async (req, res) => { + const accountId = await getAccountIdForRequest(req); + + const inventory = await getInventory(accountId); + inventory.ReceivedStartingGear = true; + console.log(req.query); + await inventory.save(); + res.status(200); +}; \ No newline at end of file diff --git a/src/controllers/api/hostSessionController.ts b/src/controllers/api/hostSessionController.ts index 94ca633a..934cf928 100644 --- a/src/controllers/api/hostSessionController.ts +++ b/src/controllers/api/hostSessionController.ts @@ -12,7 +12,7 @@ const hostSessionController: RequestHandler = async (req, res) => { const session = createNewSession(hostSessionRequest, accountId); logger.debug(`New Session Created`, { session }); - res.json({ sessionId: { $oid: session.sessionId }, rewardSeed: 99999999 }); + res.json({ sessionId: { $id: session.sessionId }, rewardSeed: 99999999 }); }; export { hostSessionController }; diff --git a/src/controllers/api/infestedFoundryController.ts b/src/controllers/api/infestedFoundryController.ts index cbfa0fa8..4bc6134b 100644 --- a/src/controllers/api/infestedFoundryController.ts +++ b/src/controllers/api/infestedFoundryController.ts @@ -12,7 +12,7 @@ export const infestedFoundryController: RequestHandler = async (req, res) => { // shard installation const request = getJSONfromString(String(req.body)) as IShardInstallRequest; const inventory = await getInventory(accountId); - const suit = inventory.Suits.find(suit => suit._id.toString() == request.SuitId.$oid)!; + const suit = inventory.Suits.find(suit => suit._id.toString() == request.SuitId.$id)!; if (!suit.ArchonCrystalUpgrades || suit.ArchonCrystalUpgrades.length != 5) { suit.ArchonCrystalUpgrades = [{}, {}, {}, {}, {}]; } diff --git a/src/controllers/api/inventoryController.ts b/src/controllers/api/inventoryController.ts index eb952b2f..865a7318 100644 --- a/src/controllers/api/inventoryController.ts +++ b/src/controllers/api/inventoryController.ts @@ -31,38 +31,37 @@ const inventoryController: RequestHandler = async (request, response) => { if (config.infiniteResources) { inventoryResponse.RegularCredits = 999999999; - inventoryResponse.TradesRemaining = 999999999; inventoryResponse.PremiumCredits = 999999999; } - if (config.unlockAllMissions) { - //inventoryResponse.Missions = allMissions; - //inventoryResponse.NodeIntrosCompleted.push("TeshinHardModeUnlocked"); - } + // if (config.unlockAllMissions) { + // //inventoryResponse.Missions = allMissions; + // //inventoryResponse.NodeIntrosCompleted.push("TeshinHardModeUnlocked"); + // } - if (config.unlockAllMissions) { - //inventoryResponse.Missions = allMissions; - //addString(inventoryResponse.NodeIntrosCompleted, "TeshinHardModeUnlocked"); - } + // if (config.unlockAllMissions) { + // //inventoryResponse.Missions = allMissions; + // //addString(inventoryResponse.NodeIntrosCompleted, "TeshinHardModeUnlocked"); + // } - if (config.unlockAllFlavourItems) { - inventoryResponse.FlavourItems = []; - for (const uniqueName in ExportFlavour) { - inventoryResponse.FlavourItems.push({ ItemType: uniqueName }); - } - } + // if (config.unlockAllFlavourItems) { + // inventoryResponse.FlavourItems = []; + // for (const uniqueName in ExportFlavour) { + // inventoryResponse.FlavourItems.push({ ItemType: uniqueName }); + // } + // } - if (config.unlockAllSkins) { - inventoryResponse.WeaponSkins = []; - for (const uniqueName in ExportCustoms) { - inventoryResponse.WeaponSkins.push({ - ItemId: { - $oid: "000000000000000000000000" - }, - ItemType: uniqueName - }); - } - } + // if (config.unlockAllSkins) { + // inventoryResponse.WeaponSkins = []; + // for (const uniqueName in ExportCustoms) { + // inventoryResponse.WeaponSkins.push({ + // ItemId: { + // $id: "000000000000000000000000" + // }, + // ItemType: uniqueName + // }); + // } + // } if (typeof config.spoofMasteryRank === "number" && config.spoofMasteryRank >= 0) { inventoryResponse.PlayerLevel = config.spoofMasteryRank; diff --git a/src/controllers/api/joinSessionController.ts b/src/controllers/api/joinSessionController.ts index 4212c90f..3bc5b3aa 100644 --- a/src/controllers/api/joinSessionController.ts +++ b/src/controllers/api/joinSessionController.ts @@ -7,7 +7,7 @@ const joinSessionController: RequestHandler = (_req, res) => { logger.debug(`JoinSession Request`, { reqBody }); const req = JSON.parse(String(_req.body)); const session = getSessionByID(req.sessionIds[0] as string); - res.json({ rewardSeed: session?.rewardSeed, sessionId: { $oid: session?.sessionId } }); + res.json({ rewardSeed: session?.rewardSeed, sessionId: { $id: session?.sessionId } }); }; export { joinSessionController }; diff --git a/src/controllers/api/missionInventoryUpdateController.ts b/src/controllers/api/missionInventoryUpdateController.ts index e2723a51..65363730 100644 --- a/src/controllers/api/missionInventoryUpdateController.ts +++ b/src/controllers/api/missionInventoryUpdateController.ts @@ -57,7 +57,7 @@ const missionInventoryUpdateController: RequestHandler = async (req, res): Promi const { InventoryChanges, MissionRewards } = getRewards(lootInventory); - const { combinedInventoryChanges, TotalCredits, CreditsBonus, MissionCredits, FusionPoints } = + const { combinedInventoryChanges, TotalCredits, CreditsBonus, MissionCredits } = combineRewardAndLootInventory(InventoryChanges, lootInventory); // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -68,8 +68,7 @@ const missionInventoryUpdateController: RequestHandler = async (req, res): Promi InventoryChanges, TotalCredits, CreditsBonus, - MissionCredits, - FusionPoints + MissionCredits }); } catch (err) { console.error("Error parsing JSON data:", err); diff --git a/src/controllers/api/startDojoRecipeController.ts b/src/controllers/api/startDojoRecipeController.ts index 4ae4dd7d..da19118f 100644 --- a/src/controllers/api/startDojoRecipeController.ts +++ b/src/controllers/api/startDojoRecipeController.ts @@ -17,7 +17,7 @@ export const startDojoRecipeController: RequestHandler = async (req, res) => { _id: new Types.ObjectId(), pf: request.PlacedComponent.pf, ppf: request.PlacedComponent.ppf, - pi: new Types.ObjectId(request.PlacedComponent.pi!.$oid), + pi: new Types.ObjectId(request.PlacedComponent.pi!.$id), op: request.PlacedComponent.op, pp: request.PlacedComponent.pp, CompletionTime: new Date(Date.now()) // TOOD: Omit this field & handle the "Collecting Materials" state. diff --git a/src/controllers/api/trainingResultController.ts b/src/controllers/api/trainingResultController.ts index 59ab9c4d..3aaa8f2e 100644 --- a/src/controllers/api/trainingResultController.ts +++ b/src/controllers/api/trainingResultController.ts @@ -18,14 +18,12 @@ interface ITrainingResultsResponse { // eslint-disable-next-line @typescript-eslint/no-misused-promises const trainingResultController: RequestHandler = async (req, res): Promise => { const accountId = await getAccountIdForRequest(req); - - const trainingResults = getJSONfromString(String(req.body)) as ITrainingResultsRequest; - + const numLevelsGained = parseInt(req.query.numLevelsGained as string); const inventory = await getInventory(accountId); - + console.log(req.query); inventory.TrainingDate = new Date(Date.now() + unixTimesInMs.day); - if (trainingResults.numLevelsGained == 1) { + if (numLevelsGained == 1) { inventory.PlayerLevel += 1; } @@ -35,7 +33,7 @@ const trainingResultController: RequestHandler = async (req, res): Promise NewTrainingDate: { $date: { $numberLong: changedinventory.TrainingDate.getTime().toString() } }, - NewLevel: trainingResults.numLevelsGained == 1 ? changedinventory.PlayerLevel : inventory.PlayerLevel, + NewLevel: numLevelsGained == 1 ? changedinventory.PlayerLevel : inventory.PlayerLevel, InventoryChanges: [] } satisfies ITrainingResultsResponse); }; diff --git a/src/controllers/api/updateInventoryController.ts b/src/controllers/api/updateInventoryController.ts index 2b3d8634..c0aac40f 100644 --- a/src/controllers/api/updateInventoryController.ts +++ b/src/controllers/api/updateInventoryController.ts @@ -1,18 +1,26 @@ import { getAccountIdForRequest } from "@/src/services/loginService"; import { RequestHandler } from "express"; -import { getInventory } from "@/src/services/inventoryService"; +import { getInventory, missionInventoryUpdate } from "@/src/services/inventoryService"; +import { combineRewardAndLootInventory } from "@/src/services/missionInventoryUpdateService"; +import { getJSONfromString } from "@/src/helpers/stringHelpers"; +import { IMissionInventoryUpdateRequest } from "@/src/types/requestTypes"; // eslint-disable-next-line @typescript-eslint/no-misused-promises export const updateInventoryController: RequestHandler = async (req, res) => { const accountId = await getAccountIdForRequest(req); - const body: any = JSON.parse(req.body as string); + const lootInventory = getJSONfromString(req.body.toString()) as IMissionInventoryUpdateRequest; + const { combinedInventoryChanges, TotalCredits, CreditsBonus, MissionCredits } = + combineRewardAndLootInventory(lootInventory, lootInventory); - const inventory = await getInventory(accountId); - inventory.Missions.push({ Tag: body.Missions.Tag, Completes: body.Missions.Completes, BestRating: 0.2 }); + await missionInventoryUpdate(combinedInventoryChanges, accountId); - await inventory.save(); - console.log(body); - res.json({}); + res.json({ + // InventoryJson, // this part will reset game data and missions will be locked + combinedInventoryChanges, + TotalCredits, + CreditsBonus, + MissionCredits + }); }; /* diff --git a/src/controllers/api/upgradesController.ts b/src/controllers/api/upgradesController.ts index c0004783..4c891588 100644 --- a/src/controllers/api/upgradesController.ts +++ b/src/controllers/api/upgradesController.ts @@ -34,7 +34,7 @@ export const upgradesController: RequestHandler = async (req, res) => { case "/Lotus/Types/Items/MiscItems/OrokinReactor": case "/Lotus/Types/Items/MiscItems/OrokinCatalyst": for (const item of inventory[payload.ItemCategory]) { - if (item._id.toString() == payload.ItemId.$oid) { + if (item._id.toString() == payload.ItemId.$id) { item.Features ??= 0; item.Features |= EquipmentFeatures.DOUBLE_CAPACITY; break; @@ -44,7 +44,7 @@ export const upgradesController: RequestHandler = async (req, res) => { case "/Lotus/Types/Items/MiscItems/UtilityUnlocker": case "/Lotus/Types/Items/MiscItems/WeaponUtilityUnlocker": for (const item of inventory[payload.ItemCategory]) { - if (item._id.toString() == payload.ItemId.$oid) { + if (item._id.toString() == payload.ItemId.$id) { item.Features ??= 0; item.Features |= EquipmentFeatures.UTILITY_SLOT; break; @@ -54,7 +54,7 @@ export const upgradesController: RequestHandler = async (req, res) => { case "/Lotus/Types/Items/MiscItems/HeavyWeaponCatalyst": console.assert(payload.ItemCategory == "SpaceGuns"); for (const item of inventory[payload.ItemCategory]) { - if (item._id.toString() == payload.ItemId.$oid) { + if (item._id.toString() == payload.ItemId.$id) { item.Features ??= 0; item.Features |= EquipmentFeatures.GRAVIMAG_INSTALLED; break; @@ -66,7 +66,7 @@ export const upgradesController: RequestHandler = async (req, res) => { case "/Lotus/Types/Items/MiscItems/WeaponMeleeArcaneUnlocker": case "/Lotus/Types/Items/MiscItems/WeaponAmpArcaneUnlocker": for (const item of inventory[payload.ItemCategory]) { - if (item._id.toString() == payload.ItemId.$oid) { + if (item._id.toString() == payload.ItemId.$id) { item.Features ??= 0; item.Features |= EquipmentFeatures.ARCANE_SLOT; break; @@ -78,7 +78,7 @@ export const upgradesController: RequestHandler = async (req, res) => { case "/Lotus/Types/Items/MiscItems/FormaAura": case "/Lotus/Types/Items/MiscItems/FormaStance": for (const item of inventory[payload.ItemCategory]) { - if (item._id.toString() == payload.ItemId.$oid) { + if (item._id.toString() == payload.ItemId.$id) { item.XP = 0; setSlotPolarity(item, operation.PolarizeSlot, operation.PolarizeValue); item.Polarized ??= 0; @@ -89,12 +89,12 @@ export const upgradesController: RequestHandler = async (req, res) => { break; case "/Lotus/Types/Items/MiscItems/ModSlotUnlocker": for (const item of inventory[payload.ItemCategory]) { - if (item._id.toString() == payload.ItemId.$oid) { + if (item._id.toString() == payload.ItemId.$id) { item.ModSlotPurchases ??= 0; item.ModSlotPurchases += 1; InventoryChanges[payload.ItemCategory] = { ItemId: { - $oid: payload.ItemId.$oid + $id: payload.ItemId.$id }, ModSlotPurchases: item.ModSlotPurchases }; @@ -104,12 +104,12 @@ export const upgradesController: RequestHandler = async (req, res) => { break; case "/Lotus/Types/Items/MiscItems/CustomizationSlotUnlocker": for (const item of inventory[payload.ItemCategory]) { - if (item._id.toString() == payload.ItemId.$oid) { + if (item._id.toString() == payload.ItemId.$id) { item.CustomizationSlotPurchases ??= 0; item.CustomizationSlotPurchases += 1; InventoryChanges[payload.ItemCategory] = { ItemId: { - $oid: payload.ItemId.$oid + $id: payload.ItemId.$id }, CustomizationSlotPurchases: item.CustomizationSlotPurchases }; @@ -120,7 +120,7 @@ export const upgradesController: RequestHandler = async (req, res) => { case "": console.assert(operation.OperationType == "UOT_SWAP_POLARITY"); for (const item of inventory[payload.ItemCategory]) { - if (item._id.toString() == payload.ItemId.$oid) { + if (item._id.toString() == payload.ItemId.$id) { for (let i = 0; i != operation.PolarityRemap.length; ++i) { if (operation.PolarityRemap[i].Slot != i) { setSlotPolarity(item, i, operation.PolarityRemap[i].Value); diff --git a/src/helpers/inventoryHelpers.ts b/src/helpers/inventoryHelpers.ts index 0955ed39..31130d1f 100644 --- a/src/helpers/inventoryHelpers.ts +++ b/src/helpers/inventoryHelpers.ts @@ -2,7 +2,7 @@ import { IOid } from "@/src/types/commonTypes"; import { IInventoryDatabase, IInventoryResponse } from "@/src/types/inventoryTypes/inventoryTypes"; import { Types } from "mongoose"; -//TODO: this needs to be addressed: a schema's toJSON is responsible for changing Oid and Date to their corresponding Response versions __id to "ItemId":{"$oid":"6450f720bc562ebf030222d4"}, and a Date to "date":{"$date":{"$numberLong":"unix timestamp"}) +//TODO: this needs to be addressed: a schema's toJSON is responsible for changing Oid and Date to their corresponding Response versions __id to "ItemId":{"$id":"6450f720bc562ebf030222d4"}, and a Date to "date":{"$date":{"$numberLong":"unix timestamp"}) export const toInventoryResponse = (inventoryDatabase: IInventoryDatabase): IInventoryResponse => { // eslint-disable-next-line @typescript-eslint/no-unused-vars const { accountOwnerId, ...inventoryResponse } = inventoryDatabase; @@ -10,7 +10,7 @@ export const toInventoryResponse = (inventoryDatabase: IInventoryDatabase): IInv }; export const toOid = (objectId: Types.ObjectId) => { - return { $oid: objectId.toString() } satisfies IOid; + return { $id: objectId.toString() } satisfies IOid; }; export const toMongoDate = (date: Date) => { diff --git a/src/models/inventoryModels/inventoryModel.ts b/src/models/inventoryModels/inventoryModel.ts index cabb89da..8e64c566 100644 --- a/src/models/inventoryModels/inventoryModel.ts +++ b/src/models/inventoryModels/inventoryModel.ts @@ -50,7 +50,7 @@ const pendingRecipeSchema = new Schema( ); pendingRecipeSchema.virtual("ItemId").get(function () { - return { $oid: this._id.toString() }; + return { $id: this._id.toString() }; }); pendingRecipeSchema.set("toJSON", { @@ -108,7 +108,7 @@ const operatorConfigSchema = new Schema( ); operatorConfigSchema.virtual("ItemId").get(function () { - return { $oid: this._id.toString() } satisfies IOid; + return { $id: this._id.toString() } satisfies IOid; }); operatorConfigSchema.set("toJSON", { @@ -197,7 +197,7 @@ const EquipmentSchema = new Schema( ); EquipmentSchema.virtual("ItemId").get(function () { - return { $oid: this._id.toString() } satisfies IOid; + return { $id: this._id.toString() } satisfies IOid; }); EquipmentSchema.set("toJSON", { @@ -225,7 +225,7 @@ const RawUpgrades = new Schema( ); RawUpgrades.virtual("LastAdded").get(function () { - return { $oid: this._id.toString() } satisfies IOid; + return { $id: this._id.toString() } satisfies IOid; }); RawUpgrades.set("toJSON", { @@ -279,12 +279,12 @@ FlavourItemSchema.set("toJSON", { } }); -// "Mailbox": { "LastInboxId": { "$oid": "123456780000000000000000" } } +// "Mailbox": { "LastInboxId": { "$id": "123456780000000000000000" } } const MailboxSchema = new Schema( { LastInboxId: { type: Schema.Types.ObjectId, - set: (v: IMailbox["LastInboxId"]) => v.$oid.toString() + set: (v: IMailbox["LastInboxId"]) => v.$id.toString() } }, { id: false, _id: false } @@ -351,7 +351,7 @@ const StepSequencersSchema = new Schema( ); StepSequencersSchema.virtual("ItemId").get(function () { - return { $oid: this._id.toString() } satisfies IOid; + return { $id: this._id.toString() } satisfies IOid; }); StepSequencersSchema.set("toJSON", { @@ -428,7 +428,7 @@ const weaponSkinsSchema = new Schema( ); weaponSkinsSchema.virtual("ItemId").get(function () { - return { $oid: this._id.toString() }; + return { $id: this._id.toString() }; }); weaponSkinsSchema.set("toJSON", { diff --git a/src/models/inventoryModels/loadoutModel.ts b/src/models/inventoryModels/loadoutModel.ts index 30a22c90..260db004 100644 --- a/src/models/inventoryModels/loadoutModel.ts +++ b/src/models/inventoryModels/loadoutModel.ts @@ -5,7 +5,7 @@ import { Model, Schema, Types, model } from "mongoose"; const oidSchema = new Schema( { - $oid: String + $id: String }, { _id: false @@ -44,7 +44,7 @@ const loadoutConfigSchema = new Schema( ); loadoutConfigSchema.virtual("ItemId").get(function () { - return { $oid: this._id.toString() } satisfies IOid; + return { $id: this._id.toString() } satisfies IOid; }); loadoutConfigSchema.set("toJSON", { diff --git a/src/routes/api.ts b/src/routes/api.ts index 25f6b0c0..28b46b2c 100644 --- a/src/routes/api.ts +++ b/src/routes/api.ts @@ -66,6 +66,7 @@ import { updateThemeController } from "../controllers/api/updateThemeController" import { upgradesController } from "@/src/controllers/api/upgradesController"; import { worldStateController } from "../controllers/dynamic/worldStateController"; import { updateInventoryController } from "../controllers/api/updateInventoryController"; +import { giveStartingGearController } from "../controllers/api/giveStartingGearController"; const apiRouter = express.Router(); @@ -104,12 +105,8 @@ apiRouter.get("/updateSession.php", updateSessionGetController); apiRouter.get("/getMessages.php", (_, response) => { response.json({}); }); -apiRouter.get("/trainingResult.php", (_, response) => { - response.status(200); -}); -apiRouter.get("/giveStartingGear.php", (_, response) => { - response.status(200); -}); +apiRouter.get("/trainingResult.php", trainingResultController); +apiRouter.get("/giveStartingGear.php", giveStartingGearController); apiRouter.get("/worldState.php", worldStateController); // post apiRouter.post("/addFriendImage.php", addFriendImageController); diff --git a/src/services/inventoryService.ts b/src/services/inventoryService.ts index c32a8af1..45fecb2b 100644 --- a/src/services/inventoryService.ts +++ b/src/services/inventoryService.ts @@ -188,34 +188,6 @@ export const addItem = async ( } }; } - case "Archwing": { - const spaceSuit = await addSpaceSuit(typeName, accountId); - await updateSlots(accountId, InventorySlot.SPACESUITS, 0, 1); - return { - InventoryChanges: { - SpaceSuitBin: { - count: 1, - platinum: 0, - Slots: -1 - }, - SpaceSuits: [spaceSuit] - } - }; - } - case "EntratiMech": { - const mechSuit = await addMechSuit(typeName, accountId); - await updateSlots(accountId, InventorySlot.MECHSUITS, 0, 1); - return { - InventoryChanges: { - MechBin: { - count: 1, - platinum: 0, - Slots: -1 - }, - MechSuits: [mechSuit] - } - }; - } } break; case "Weapons": @@ -426,9 +398,6 @@ export const updateCurrency = async (price: number, usePremium: boolean, account const inventory = await getInventory(accountId); if (usePremium) { - if (inventory.PremiumCreditsFree > 0) { - inventory.PremiumCreditsFree -= Math.min(price, inventory.PremiumCreditsFree); - } inventory.PremiumCredits -= price; } else { inventory.RegularCredits -= price; @@ -436,7 +405,7 @@ export const updateCurrency = async (price: number, usePremium: boolean, account const modifiedPaths = inventory.modifiedPaths(); - type currencyKeys = "RegularCredits" | "PremiumCredits" | "PremiumCreditsFree"; + type currencyKeys = "RegularCredits" | "PremiumCredits"; const currencyChanges = {} as Record; modifiedPaths.forEach(path => { @@ -556,7 +525,7 @@ const addGearExpByCategory = ( return; } - const itemIndex = ItemId ? category.findIndex(item => item._id?.equals(ItemId.$oid)) : -1; + const itemIndex = ItemId ? category.findIndex(item => item._id?.equals(ItemId.$id)) : -1; if (itemIndex !== -1) { const item = category[itemIndex]; item.XP ??= 0; @@ -741,58 +710,15 @@ export const missionInventoryUpdate = async (data: IMissionInventoryUpdateReques // credits inventory.RegularCredits += RegularCredits || 0; - // endo - inventory.FusionPoints += FusionPoints || 0; - - // syndicate - data.AffiliationChanges?.forEach(affiliation => { - const syndicate = inventory.Affiliations.find(x => x.Tag == affiliation.Tag); - if (syndicate !== undefined) { - syndicate.Standing = - syndicate.Standing === undefined ? affiliation.Standing : syndicate.Standing + affiliation.Standing; - syndicate.Title = syndicate.Title === undefined ? affiliation.Title : syndicate.Title + affiliation.Title; - } else { - inventory.Affiliations.push({ - Standing: affiliation.Standing, - Title: affiliation.Title, - Tag: affiliation.Tag, - FreeFavorsEarned: [], - FreeFavorsUsed: [] - }); - } - }); - // Gear XP equipmentKeys.forEach(key => addGearExpByCategory(inventory, data[key], key)); - // Incarnon Challenges - if (data.EvolutionProgress) { - for (const evoProgress of data.EvolutionProgress) { - const entry = inventory.EvolutionProgress - ? inventory.EvolutionProgress.find(entry => entry.ItemType == evoProgress.ItemType) - : undefined; - if (entry) { - entry.Progress = evoProgress.Progress; - entry.Rank = evoProgress.Rank; - } else { - inventory.EvolutionProgress ??= []; - inventory.EvolutionProgress.push(evoProgress); - } - } - } - - // LastRegionPlayed - if (data.LastRegionPlayed) { - inventory.LastRegionPlayed = data.LastRegionPlayed; - } - // other addMods(inventory, RawUpgrades); addMiscItems(inventory, MiscItems); addConsumables(inventory, Consumables); addRecipes(inventory, Recipes); addChallenges(inventory, ChallengeProgress); - addFusionTreasures(inventory, FusionTreasures); if (Missions) { addMissionComplete(inventory, Missions); } @@ -833,7 +759,7 @@ export const upgradeMod = async (artifactsData: IArtifactsRequest, accountId: st parsedUpgradeFingerprint.lvl += LevelDiff; const stringifiedUpgradeFingerprint = JSON.stringify(parsedUpgradeFingerprint); - let itemIndex = Upgrades.findIndex(upgrade => upgrade._id?.equals(ItemId!.$oid)); + let itemIndex = Upgrades.findIndex(upgrade => upgrade._id?.equals(ItemId!.$id)); if (itemIndex !== -1) { Upgrades[itemIndex].UpgradeFingerprint = stringifiedUpgradeFingerprint; @@ -858,7 +784,7 @@ export const upgradeMod = async (artifactsData: IArtifactsRequest, accountId: st inventory.FusionPoints -= FusionPointCost; const changedInventory = await inventory.save(); - const itemId = changedInventory.toJSON().Upgrades[itemIndex]?.ItemId?.$oid; + const itemId = changedInventory.toJSON().Upgrades[itemIndex]?.ItemId?.$id; if (!itemId) { throw new Error("Item Id not found in upgradeMod"); diff --git a/src/services/missionInventoryUpdateService.ts b/src/services/missionInventoryUpdateService.ts index 87c30ca8..a3d249ae 100644 --- a/src/services/missionInventoryUpdateService.ts +++ b/src/services/missionInventoryUpdateService.ts @@ -73,22 +73,8 @@ const combineRewardAndLootInventory = ( const missionCredits = lootInventory.RegularCredits || 0; const creditsBonus = rewardInventory.RegularCredits || 0; const totalCredits = missionCredits + creditsBonus; - let FusionPoints = rewardInventory.FusionPoints || 0; - - // Discharge Endo picked up during the mission - if (lootInventory.FusionBundles) { - for (const fusionBundle of lootInventory.FusionBundles) { - if (fusionBundle.ItemType in fusionBundles) { - FusionPoints += fusionBundles[fusionBundle.ItemType] * fusionBundle.ItemCount; - } else { - logger.error(`unknown fusion bundle: ${fusionBundle.ItemType}`); - } - } - lootInventory.FusionBundles = undefined; - } lootInventory.RegularCredits = totalCredits; - lootInventory.FusionPoints = FusionPoints; inventoryFields.forEach((field: IInventoryFieldType) => { if (rewardInventory[field] && !lootInventory[field]) { lootInventory[field] = []; @@ -101,7 +87,6 @@ const combineRewardAndLootInventory = ( TotalCredits: [totalCredits, totalCredits], CreditsBonus: [creditsBonus, creditsBonus], MissionCredits: [missionCredits, missionCredits], - FusionPoints: FusionPoints }; }; diff --git a/src/services/purchaseService.ts b/src/services/purchaseService.ts index 29bdc218..e89d01e1 100644 --- a/src/services/purchaseService.ts +++ b/src/services/purchaseService.ts @@ -107,14 +107,7 @@ const handleStoreItemAcquisition = async ( export const slotPurchaseNameToSlotName: SlotPurchase = { SuitSlotItem: { name: "SuitBin", slotsPerPurchase: 1 }, TwoSentinelSlotItem: { name: "SentinelBin", slotsPerPurchase: 2 }, - TwoWeaponSlotItem: { name: "WeaponBin", slotsPerPurchase: 2 }, - SpaceSuitSlotItem: { name: "SpaceSuitBin", slotsPerPurchase: 1 }, - TwoSpaceWeaponSlotItem: { name: "SpaceWeaponBin", slotsPerPurchase: 2 }, - MechSlotItem: { name: "MechBin", slotsPerPurchase: 1 }, - TwoOperatorWeaponSlotItem: { name: "OperatorAmpBin", slotsPerPurchase: 2 }, - RandomModSlotItem: { name: "RandomModBin", slotsPerPurchase: 3 }, - TwoCrewShipSalvageSlotItem: { name: "CrewShipSalvageBin", slotsPerPurchase: 2 }, - CrewMemberSlotItem: { name: "CrewMemberBin", slotsPerPurchase: 1 } + TwoWeaponSlotItem: { name: "WeaponBin", slotsPerPurchase: 2 } }; // // extra = everything above the base +2 slots (depending on slot type) diff --git a/src/services/recipeService.ts b/src/services/recipeService.ts index 8594def4..79f605ff 100644 --- a/src/services/recipeService.ts +++ b/src/services/recipeService.ts @@ -34,6 +34,6 @@ export const startRecipe = async (recipeName: string, accountId: string) => { const newInventory = await inventory.save(); return { - RecipeId: { $oid: newInventory.PendingRecipes[newInventory.PendingRecipes.length - 1]._id?.toString() } + RecipeId: { $id: newInventory.PendingRecipes[newInventory.PendingRecipes.length - 1]._id?.toString() } }; }; diff --git a/src/services/saveLoadoutService.ts b/src/services/saveLoadoutService.ts index 6cd6d7b2..f9830621 100644 --- a/src/services/saveLoadoutService.ts +++ b/src/services/saveLoadoutService.ts @@ -50,7 +50,7 @@ export const handleInventoryItemConfigChange = async ( if (!loadout) { const { ItemId, ...loadoutConfigItemIdRemoved } = loadoutConfig; operatorLoadout.push({ - _id: ItemId.$oid, + _id: ItemId.$id, ...loadoutConfigItemIdRemoved }); continue; @@ -89,14 +89,14 @@ export const handleInventoryItemConfigChange = async ( const { ItemId, ...loadoutConfigItemIdRemoved } = loadoutConfig; const loadoutConfigDatabase: ILoadoutConfigDatabase = { - _id: new Types.ObjectId(ItemId.$oid), + _id: new Types.ObjectId(ItemId.$id), ...loadoutConfigItemIdRemoved }; // if no config with this id exists, create a new one if (!oldLoadoutConfig) { //save the new object id and assign it for every ffff return at the end - if (ItemId.$oid === "ffffffffffffffffffffffff") { + if (ItemId.$id === "ffffffffffffffffffffffff") { if (!newLoadoutId) { newLoadoutId = new Types.ObjectId(); } diff --git a/src/types/commonTypes.ts b/src/types/commonTypes.ts index eebd9410..d8c451d0 100644 --- a/src/types/commonTypes.ts +++ b/src/types/commonTypes.ts @@ -1,5 +1,5 @@ export interface IOid { - $oid: string; + $id: string; } export interface IMongoDate { diff --git a/src/types/inventoryTypes/inventoryTypes.ts b/src/types/inventoryTypes/inventoryTypes.ts index 434105f5..9587a080 100644 --- a/src/types/inventoryTypes/inventoryTypes.ts +++ b/src/types/inventoryTypes/inventoryTypes.ts @@ -123,7 +123,6 @@ export interface IInventoryResponse { RewardSeed: number; RegularCredits: number; PremiumCredits: number; - PremiumCreditsFree: number; FusionPoints: number; SuitBin: ISlots; WeaponBin: ISlots; @@ -134,14 +133,6 @@ export interface IInventoryResponse { PveBonusLoadoutBin: ISlots; RandomModBin: ISlots; MechBin: ISlots; - CrewMemberBin: ISlots; - OperatorAmpBin: ISlots; - CrewShipSalvageBin: ISlots; - TradesRemaining: number; - DailyAffiliation: number; - DailyAffiliationPvp: number; - DailyAffiliationLibrary: number; - DailyFocus: number; GiftsRemaining: number; HandlerPoints: number; MiscItems: IMiscItem[]; diff --git a/src/types/purchaseTypes.ts b/src/types/purchaseTypes.ts index 0d04114e..df83d026 100644 --- a/src/types/purchaseTypes.ts +++ b/src/types/purchaseTypes.ts @@ -26,27 +26,14 @@ export type IBinChanges = { export type SlotPurchaseName = | "SuitSlotItem" | "TwoSentinelSlotItem" - | "TwoWeaponSlotItem" - | "SpaceSuitSlotItem" - | "TwoSpaceWeaponSlotItem" - | "MechSlotItem" - | "TwoOperatorWeaponSlotItem" - | "RandomModSlotItem" - | "TwoCrewShipSalvageSlotItem" - | "CrewMemberSlotItem"; + | "TwoWeaponSlotItem"; export type SlotNames = | "SuitBin" | "WeaponBin" | "MechBin" | "PveBonusLoadoutBin" - | "SentinelBin" - | "SpaceSuitBin" - | "SpaceWeaponBin" - | "OperatorAmpBin" - | "RandomModBin" - | "CrewShipSalvageBin" - | "CrewMemberBin"; + | "SentinelBin"; export type SlotPurchase = { [P in SlotPurchaseName]: { name: SlotNames; slotsPerPurchase: number }; diff --git a/static/fixed_responses/getVendorInfo/ArchimedeanVendorManifest.json b/static/fixed_responses/getVendorInfo/ArchimedeanVendorManifest.json index df3dc048..a4a48064 100644 --- a/static/fixed_responses/getVendorInfo/ArchimedeanVendorManifest.json +++ b/static/fixed_responses/getVendorInfo/ArchimedeanVendorManifest.json @@ -1,6 +1,6 @@ { "VendorInfo": { - "_id": { "$oid": "62695b0467e5d379750f9f75" }, + "_id": { "$id": "62695b0467e5d379750f9f75" }, "TypeName": "/Lotus/Types/Game/VendorManifests/Zariman/ArchimedeanVendorManifest", "ItemManifest": [ { @@ -10,7 +10,7 @@ "QuantityMultiplier": 1, "Expiry": { "$date": { "$numberLong": "9999999000000" } }, "AllowMultipurchase": true, - "Id": { "$oid": "63ed01ef4c37f93d0b797826" } + "Id": { "$id": "63ed01ef4c37f93d0b797826" } }, { "StoreItem": "/Lotus/StoreItems/Types/Items/ShipDecos/VoidPlumeBOrnament", @@ -19,7 +19,7 @@ "QuantityMultiplier": 1, "Expiry": { "$date": { "$numberLong": "9999999000000" } }, "AllowMultipurchase": true, - "Id": { "$oid": "63ed01ef4c37f93d0b797827" } + "Id": { "$id": "63ed01ef4c37f93d0b797827" } }, { "StoreItem": "/Lotus/StoreItems/Types/Items/MiscItems/Kuva", @@ -29,7 +29,7 @@ "Expiry": { "$date": { "$numberLong": "9999999000000" } }, "PurchaseQuantityLimit": 1, "AllowMultipurchase": false, - "Id": { "$oid": "66664112af1177b5070ab882" } + "Id": { "$id": "66664112af1177b5070ab882" } } ], "PropertyTextHash": "DB7BF03C3FE6D0036A4DC30066A9A17E", diff --git a/static/fixed_responses/getVendorInfo/MaskSalesmanManifest.json b/static/fixed_responses/getVendorInfo/MaskSalesmanManifest.json index 85aa7eac..37fe8a81 100644 --- a/static/fixed_responses/getVendorInfo/MaskSalesmanManifest.json +++ b/static/fixed_responses/getVendorInfo/MaskSalesmanManifest.json @@ -1,7 +1,7 @@ { "VendorInfo": { "_id": { - "$oid": "598a090d9a4a313746fd1f24" + "$id": "598a090d9a4a313746fd1f24" }, "TypeName": "/Lotus/Types/Game/VendorManifests/Ostron/MaskSalesmanManifest", "ItemManifest": [ @@ -23,7 +23,7 @@ }, "AllowMultipurchase": true, "Id": { - "$oid": "63ed01ef4c37f93d0b797674" + "$id": "63ed01ef4c37f93d0b797674" } }, { @@ -59,7 +59,7 @@ }, "AllowMultipurchase": true, "Id": { - "$oid": "63ed01ef4c37f93d0b797675" + "$id": "63ed01ef4c37f93d0b797675" } }, { @@ -95,7 +95,7 @@ }, "AllowMultipurchase": true, "Id": { - "$oid": "63ed01ef4c37f93d0b797676" + "$id": "63ed01ef4c37f93d0b797676" } }, { @@ -131,7 +131,7 @@ }, "AllowMultipurchase": true, "Id": { - "$oid": "63ed01ef4c37f93d0b797677" + "$id": "63ed01ef4c37f93d0b797677" } }, { @@ -157,7 +157,7 @@ }, "AllowMultipurchase": true, "Id": { - "$oid": "6651291214e90115b91b50a1" + "$id": "6651291214e90115b91b50a1" } }, { @@ -183,7 +183,7 @@ }, "AllowMultipurchase": true, "Id": { - "$oid": "6651291214e90115b91b50a2" + "$id": "6651291214e90115b91b50a2" } }, { @@ -209,7 +209,7 @@ }, "AllowMultipurchase": true, "Id": { - "$oid": "6651291214e90115b91b50a3" + "$id": "6651291214e90115b91b50a3" } }, { @@ -235,7 +235,7 @@ }, "AllowMultipurchase": true, "Id": { - "$oid": "6651291214e90115b91b50a4" + "$id": "6651291214e90115b91b50a4" } }, { @@ -261,7 +261,7 @@ }, "AllowMultipurchase": true, "Id": { - "$oid": "6651291214e90115b91b50a5" + "$id": "6651291214e90115b91b50a5" } }, { @@ -287,7 +287,7 @@ }, "AllowMultipurchase": true, "Id": { - "$oid": "6651291214e90115b91b50a6" + "$id": "6651291214e90115b91b50a6" } } ], diff --git a/static/fixed_responses/getVendorInfo/ZarimanCommisionsManifestArchimedean.json b/static/fixed_responses/getVendorInfo/ZarimanCommisionsManifestArchimedean.json index ec1c5c22..267fa4f1 100644 --- a/static/fixed_responses/getVendorInfo/ZarimanCommisionsManifestArchimedean.json +++ b/static/fixed_responses/getVendorInfo/ZarimanCommisionsManifestArchimedean.json @@ -1,6 +1,6 @@ { "VendorInfo": { - "_id": { "$oid": "62a20ba667e5d3797540d831" }, + "_id": { "$id": "62a20ba667e5d3797540d831" }, "TypeName": "/Lotus/Types/Game/VendorManifests/Zariman/ZarimanCommisionsManifestArchimedean", "ItemManifest": [ { @@ -14,7 +14,7 @@ "Expiry": { "$date": { "$numberLong": "9999999000000" } }, "PurchaseQuantityLimit": 1, "AllowMultipurchase": false, - "Id": { "$oid": "6678b612aa3d8ee5c2597299" } + "Id": { "$id": "6678b612aa3d8ee5c2597299" } }, { "StoreItem": "/Lotus/Types/StoreItems/Packages/Tasks/Zariman/AchimedeanTaskD", @@ -27,7 +27,7 @@ "Expiry": { "$date": { "$numberLong": "9999999000000" } }, "PurchaseQuantityLimit": 1, "AllowMultipurchase": false, - "Id": { "$oid": "6678b612aa3d8ee5c259729a" } + "Id": { "$id": "6678b612aa3d8ee5c259729a" } }, { "StoreItem": "/Lotus/Types/StoreItems/Packages/Tasks/Zariman/AchimedeanTaskC", @@ -40,7 +40,7 @@ "Expiry": { "$date": { "$numberLong": "9999999000000" } }, "PurchaseQuantityLimit": 1, "AllowMultipurchase": false, - "Id": { "$oid": "6678b612aa3d8ee5c259729b" } + "Id": { "$id": "6678b612aa3d8ee5c259729b" } }, { "StoreItem": "/Lotus/Types/StoreItems/Packages/Tasks/Zariman/AchimedeanTaskB", @@ -53,7 +53,7 @@ "Expiry": { "$date": { "$numberLong": "9999999000000" } }, "PurchaseQuantityLimit": 1, "AllowMultipurchase": false, - "Id": { "$oid": "6678b612aa3d8ee5c259729c" } + "Id": { "$id": "6678b612aa3d8ee5c259729c" } }, { "StoreItem": "/Lotus/Types/StoreItems/Packages/Tasks/Zariman/AchimedeanTaskA", @@ -66,7 +66,7 @@ "Expiry": { "$date": { "$numberLong": "9999999000000" } }, "PurchaseQuantityLimit": 1, "AllowMultipurchase": false, - "Id": { "$oid": "6678b612aa3d8ee5c259729d" } + "Id": { "$id": "6678b612aa3d8ee5c259729d" } } ], "PropertyTextHash": "F43F0ED811985EEF856970A8342EF322", diff --git a/static/fixed_responses/inventory.json b/static/fixed_responses/inventory.json index e19ac090..5a5bedd7 100644 --- a/static/fixed_responses/inventory.json +++ b/static/fixed_responses/inventory.json @@ -8,7 +8,7 @@ "DrifterMelee": [ { "ItemType": "/Lotus/Types/Friendly/PlayerControllable/Weapons/DuviriDualSwords", - "ItemId": { "$oid": "removed" } + "ItemId": { "$id": "removed" } } ], "FusionPoints": 0, @@ -23,7 +23,7 @@ "SpaceWeaponBin": { "Slots": 4 }, "SuitBin": { "Slots": 2 }, "WeaponBin": { "Slots": 8 }, - "LastInventorySync": { "$oid": "removed" }, + "LastInventorySync": { "$id": "removed" }, "NextRefill": { "$date": { "$numberLong": "removed" } }, "ActiveLandscapeTraps": [], "ChallengeProgress": [], @@ -59,7 +59,7 @@ "Scoops": [], "Sentinels": [], "SentinelWeapons": [], - "Ships": [{ "ItemType": "/Lotus/Types/Items/Ships/DefaultShip", "ItemId": { "$oid": "123123" } }], + "Ships": [{ "ItemType": "/Lotus/Types/Items/Ships/DefaultShip", "ItemId": { "$id": "123123" } }], "SpaceGuns": [], "SpaceMelee": [], "SpaceSuits": [], diff --git a/static/fixed_responses/new_inventory.json b/static/fixed_responses/new_inventory.json index fb2e616e..209235dd 100644 --- a/static/fixed_responses/new_inventory.json +++ b/static/fixed_responses/new_inventory.json @@ -5,7 +5,7 @@ "RewardSeed": -5604904486637265640, "CrewMemberBin": { "Slots": 3 }, "CrewShipSalvageBin": { "Slots": 8 }, - "DrifterMelee": [{ "ItemType": "/Lotus/Types/Friendly/PlayerControllable/Weapons/DuviriDualSwords", "ItemId": { "$oid": "647bb619e15fa43f0ee4b1b1" } }], + "DrifterMelee": [{ "ItemType": "/Lotus/Types/Friendly/PlayerControllable/Weapons/DuviriDualSwords", "ItemId": { "$id": "647bb619e15fa43f0ee4b1b1" } }], "FusionPoints": 0, "MechBin": { "Slots": 4 }, "OperatorAmpBin": { "Slots": 8 }, @@ -18,7 +18,7 @@ "SpaceWeaponBin": { "Slots": 4 }, "SuitBin": { "Slots": 2 }, "WeaponBin": { "Slots": 8 }, - "LastInventorySync": { "$oid": "647bb5d79f963c9d24668257" }, + "LastInventorySync": { "$id": "647bb5d79f963c9d24668257" }, "NextRefill": { "$date": { "$numberLong": "1685829131" } }, "ActiveLandscapeTraps": [], "ChallengeProgress": [], diff --git a/static/fixed_responses/postTutorialInventory.json b/static/fixed_responses/postTutorialInventory.json index 2ae61103..df8b8a86 100644 --- a/static/fixed_responses/postTutorialInventory.json +++ b/static/fixed_responses/postTutorialInventory.json @@ -8,22 +8,22 @@ "SpaceWeaponBin": { "Slots": 4 }, "SuitBin": { "Slots": 1 }, "WeaponBin": { "Slots": 5 }, - "Recipes": [{ "ItemCount": 1, "ItemType": "/Lotus/Types/Recipes/Weapons/BoltonfaBlueprint" }], + "Recipes": [], "ChallengeProgress": [{ "Progress": 2, "Name": "EMGetKills" }], - "Consumables": [{ "ItemCount": 1, "ItemType": "/Lotus/Types/Restoratives/LisetAutoHack" }], + "Consumables": [{ "ItemCount": 1, "ItemType": "/Lotus/Types/Restoratives/Cipher" }], "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/Tenno/Bows/HuntingBow", "XP": 0, "Configs": [{}, {}, {}], "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }], - "Melee": [{ "ItemType": "/Lotus/Weapons/Tenno/Melee/LongSword/LongSword", "XP": 0, "Configs": [{}, {}, {}], "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }], - "Pistols": [{ "ItemType": "/Lotus/Weapons/Tenno/Pistol/TutorialPistol", "XP": 0, "Configs": [{}, {}, {}], "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }], - "RawUpgrades": [{ "ItemCount": 1, "LastAdded": { "$oid": "6450f9bfe0714a4d6703f05f" }, "ItemType": "/Lotus/Upgrades/Mods/Warframe/AvatarShieldMaxMod" }], + "LongGuns": [{ "ItemType": "/Lotus/Weapons/Tenno/Bows/HuntingBow", "XP": 0, "Configs": [{}, {}, {}], "ItemId": { "$id": "647bd27cf856530b4f3bf343" } }], + "Melee": [{ "ItemType": "/Lotus/Weapons/Tenno/Melee/LongSword/LongSword", "XP": 0, "Configs": [{}, {}, {}], "ItemId": { "$id": "647bd27cf856530b4f3bf343" } }], + "Pistols": [{ "ItemType": "/Lotus/Weapons/Tenno/Pistol/Pistol", "XP": 0, "Configs": [{}, {}, {}], "ItemId": { "$id": "647bd27cf856530b4f3bf343" } }], + "RawUpgrades": [{ "ItemCount": 1, "LastAdded": { "$id": "6450f9bfe0714a4d6703f05f" }, "ItemType": "/Lotus/Upgrades/Mods/Warframe/AvatarShieldMaxMod" }], "ReceivedStartingGear": true, - "Suits": [{ "ItemType": "/Lotus/Powersuits/Volt/Volt", "XP": 0, "Configs": [{}, {}, {}], "UpgradeVer": 101, "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }], - "WeaponSkins": [{ "ItemType": "/Lotus/Upgrades/Skins/Volt/VoltHelmet", "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }], + "Suits": [{ "ItemType": "/Lotus/Powersuits/Volt/Volt", "XP": 0, "Configs": [{}, {}, {}], "UpgradeVer": 101, "ItemId": { "$id": "647bd27cf856530b4f3bf343" } }], + "WeaponSkins": [{ "ItemType": "/Lotus/Upgrades/Skins/Volt/VoltHelmet", "ItemId": { "$id": "647bd27cf856530b4f3bf343" } }], "PendingRecipes": [], "TrainingDate": 0, "PlayerLevel": 0, diff --git a/static/fixed_responses/worldState.json b/static/fixed_responses/worldState.json index caeae2ae..a9a19dcc 100644 --- a/static/fixed_responses/worldState.json +++ b/static/fixed_responses/worldState.json @@ -23,7 +23,7 @@ ], "Sorties": [ { - "_id": { "$oid": "663a4c7d4d932c97c0a3acd7" }, + "_id": { "$id": "663a4c7d4d932c97c0a3acd7" }, "Activation": { "$date": { "$numberLong": "1715097600000" } }, "Expiry": { "$date": { "$numberLong": "1715184000000" } }, "Reward": "/Lotus/Types/Game/MissionDecks/SortieRewards", @@ -40,7 +40,7 @@ ], "LiteSorties": [ { - "_id": { "$oid": "663819fd1cec9ebe9d83a06e" }, + "_id": { "$id": "663819fd1cec9ebe9d83a06e" }, "Activation": { "$date": { "$numberLong": "1714953600000" } }, "Expiry": { "$date": { "$numberLong": "1715558400000" } }, "Reward": "/Lotus/Types/Game/MissionDecks/ArchonSortieRewards", @@ -55,7 +55,7 @@ ], "SyndicateMissions": [ { - "_id": { "$oid": "663a4fc5ba6f84724fa48049" }, + "_id": { "$id": "663a4fc5ba6f84724fa48049" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "ArbitersSyndicate", @@ -63,7 +63,7 @@ "Nodes": ["SolNode223", "SolNode89", "SolNode146", "SolNode212", "SolNode167", "SolNode48", "SolNode78"] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa4804a" }, + "_id": { "$id": "663a4fc5ba6f84724fa4804a" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "CephalonSudaSyndicate", @@ -71,7 +71,7 @@ "Nodes": ["SolNode36", "SolNode59", "SettlementNode12", "SolNode61", "SolNode12", "SolNode138", "SolNode72"] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa4804c" }, + "_id": { "$id": "663a4fc5ba6f84724fa4804c" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "EventSyndicate", @@ -79,7 +79,7 @@ "Nodes": [] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa4804b" }, + "_id": { "$id": "663a4fc5ba6f84724fa4804b" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "NecraloidSyndicate", @@ -87,7 +87,7 @@ "Nodes": [] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa4804d" }, + "_id": { "$id": "663a4fc5ba6f84724fa4804d" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "KahlSyndicate", @@ -95,7 +95,7 @@ "Nodes": [] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa4804e" }, + "_id": { "$id": "663a4fc5ba6f84724fa4804e" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "NewLokaSyndicate", @@ -103,7 +103,7 @@ "Nodes": ["SolNode101", "SolNode224", "SolNode205", "SettlementNode2", "SolNode171", "SolNode188", "SolNode75"] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa4804f" }, + "_id": { "$id": "663a4fc5ba6f84724fa4804f" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "QuillsSyndicate", @@ -111,7 +111,7 @@ "Nodes": [] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa48050" }, + "_id": { "$id": "663a4fc5ba6f84724fa48050" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "PerrinSyndicate", @@ -119,7 +119,7 @@ "Nodes": ["SolNode39", "SolNode14", "SolNode203", "SolNode100", "SolNode130", "SolNode64", "SettlementNode15"] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa48052" }, + "_id": { "$id": "663a4fc5ba6f84724fa48052" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "RadioLegion3Syndicate", @@ -127,7 +127,7 @@ "Nodes": [] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa48051" }, + "_id": { "$id": "663a4fc5ba6f84724fa48051" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "RadioLegion2Syndicate", @@ -135,7 +135,7 @@ "Nodes": [] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa48053" }, + "_id": { "$id": "663a4fc5ba6f84724fa48053" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "RadioLegionIntermission10Syndicate", @@ -143,7 +143,7 @@ "Nodes": [] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa48057" }, + "_id": { "$id": "663a4fc5ba6f84724fa48057" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "RadioLegionIntermission5Syndicate", @@ -151,7 +151,7 @@ "Nodes": [] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa48055" }, + "_id": { "$id": "663a4fc5ba6f84724fa48055" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "RadioLegionIntermission3Syndicate", @@ -159,7 +159,7 @@ "Nodes": [] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa48056" }, + "_id": { "$id": "663a4fc5ba6f84724fa48056" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "RadioLegionIntermission4Syndicate", @@ -167,7 +167,7 @@ "Nodes": [] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa48054" }, + "_id": { "$id": "663a4fc5ba6f84724fa48054" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "RadioLegionIntermission2Syndicate", @@ -175,7 +175,7 @@ "Nodes": [] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa48058" }, + "_id": { "$id": "663a4fc5ba6f84724fa48058" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "RadioLegionIntermission6Syndicate", @@ -183,7 +183,7 @@ "Nodes": [] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa4805c" }, + "_id": { "$id": "663a4fc5ba6f84724fa4805c" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "RadioLegionIntermissionSyndicate", @@ -191,7 +191,7 @@ "Nodes": [] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa4805a" }, + "_id": { "$id": "663a4fc5ba6f84724fa4805a" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "RadioLegionIntermission8Syndicate", @@ -199,7 +199,7 @@ "Nodes": [] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa4805b" }, + "_id": { "$id": "663a4fc5ba6f84724fa4805b" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "RadioLegionIntermission9Syndicate", @@ -207,7 +207,7 @@ "Nodes": [] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa48059" }, + "_id": { "$id": "663a4fc5ba6f84724fa48059" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "RadioLegionIntermission7Syndicate", @@ -215,7 +215,7 @@ "Nodes": [] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa4805d" }, + "_id": { "$id": "663a4fc5ba6f84724fa4805d" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "RadioLegionSyndicate", @@ -223,7 +223,7 @@ "Nodes": [] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa4805f" }, + "_id": { "$id": "663a4fc5ba6f84724fa4805f" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "VentKidsSyndicate", @@ -231,7 +231,7 @@ "Nodes": [] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa4805e" }, + "_id": { "$id": "663a4fc5ba6f84724fa4805e" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "RedVeilSyndicate", @@ -239,7 +239,7 @@ "Nodes": ["SolNode226", "SolNode79", "SolNode216", "SettlementNode11", "SolNode56", "SolNode41", "SolNode23"] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa48060" }, + "_id": { "$id": "663a4fc5ba6f84724fa48060" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "VoxSyndicate", @@ -247,7 +247,7 @@ "Nodes": [] }, { - "_id": { "$oid": "663a4fc5ba6f84724fa48061" }, + "_id": { "$id": "663a4fc5ba6f84724fa48061" }, "Activation": { "$date": { "$numberLong": "1715097541439" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "SteelMeridianSyndicate", @@ -255,7 +255,7 @@ "Nodes": ["SolNode27", "SolNode107", "SolNode214", "SettlementNode1", "SolNode177", "SolNode141", "SolNode408"] }, { - "_id": { "$oid": "663a71c80000000000000002" }, + "_id": { "$id": "663a71c80000000000000002" }, "Activation": { "$date": { "$numberLong": "1715106248403" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "EntratiSyndicate", @@ -341,7 +341,7 @@ ] }, { - "_id": { "$oid": "663a71c80000000000000004" }, + "_id": { "$id": "663a71c80000000000000004" }, "Activation": { "$date": { "$numberLong": "1715106248403" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "EntratiLabSyndicate", @@ -349,7 +349,7 @@ "Nodes": [] }, { - "_id": { "$oid": "663a71c80000000000000008" }, + "_id": { "$id": "663a71c80000000000000008" }, "Activation": { "$date": { "$numberLong": "1715106248403" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "CetusSyndicate", @@ -415,7 +415,7 @@ ] }, { - "_id": { "$oid": "663a71c80000000000000025" }, + "_id": { "$id": "663a71c80000000000000025" }, "Activation": { "$date": { "$numberLong": "1715106248403" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "SolarisSyndicate", @@ -481,7 +481,7 @@ ] }, { - "_id": { "$oid": "663a71c80000000000000029" }, + "_id": { "$id": "663a71c80000000000000029" }, "Activation": { "$date": { "$numberLong": "1715106248403" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Tag": "ZarimanSyndicate", @@ -491,7 +491,7 @@ ], "ActiveMissions": [ { - "_id": { "$oid": "663a7509d93367863785932d" }, + "_id": { "$id": "663a7509d93367863785932d" }, "Region": 15, "Seed": 80795, "Activation": { "$date": { "$numberLong": "1715107081517" } }, @@ -502,7 +502,7 @@ "Hard": true }, { - "_id": { "$oid": "663a75f959a5964cadb39879" }, + "_id": { "$id": "663a75f959a5964cadb39879" }, "Region": 19, "Seed": 32067, "Activation": { "$date": { "$numberLong": "1715107321237" } }, @@ -513,7 +513,7 @@ "Hard": true }, { - "_id": { "$oid": "663a779d3e347839ff301814" }, + "_id": { "$id": "663a779d3e347839ff301814" }, "Region": 7, "Seed": 51739, "Activation": { "$date": { "$numberLong": "1715107741454" } }, @@ -523,7 +523,7 @@ "Modifier": "VoidT3" }, { - "_id": { "$oid": "663a77d916c199f4644ee67d" }, + "_id": { "$id": "663a77d916c199f4644ee67d" }, "Region": 17, "Seed": 61179, "Activation": { "$date": { "$numberLong": "1715107801647" } }, @@ -533,7 +533,7 @@ "Modifier": "VoidT6" }, { - "_id": { "$oid": "663a78c98a609b49b8410726" }, + "_id": { "$id": "663a78c98a609b49b8410726" }, "Region": 3, "Seed": 9520, "Activation": { "$date": { "$numberLong": "1715108041501" } }, @@ -544,7 +544,7 @@ "Hard": true }, { - "_id": { "$oid": "663a7df15eeabaac79b0a061" }, + "_id": { "$id": "663a7df15eeabaac79b0a061" }, "Region": 6, "Seed": 48861, "Activation": { "$date": { "$numberLong": "1715109361974" } }, @@ -555,7 +555,7 @@ "Hard": true }, { - "_id": { "$oid": "663a7df25eeabaac79b0a062" }, + "_id": { "$id": "663a7df25eeabaac79b0a062" }, "Region": 5, "Seed": 13550, "Activation": { "$date": { "$numberLong": "1715109361974" } }, @@ -566,7 +566,7 @@ "Hard": true }, { - "_id": { "$oid": "663a83cdec0d5181435f1324" }, + "_id": { "$id": "663a83cdec0d5181435f1324" }, "Region": 19, "Seed": 39392, "Activation": { "$date": { "$numberLong": "1715110861506" } }, @@ -576,7 +576,7 @@ "Modifier": "VoidT5" }, { - "_id": { "$oid": "663a83cdec0d5181435f1325" }, + "_id": { "$id": "663a83cdec0d5181435f1325" }, "Region": 19, "Seed": 88668, "Activation": { "$date": { "$numberLong": "1715110861506" } }, @@ -586,7 +586,7 @@ "Modifier": "VoidT5" }, { - "_id": { "$oid": "663a83cdec0d5181435f1326" }, + "_id": { "$id": "663a83cdec0d5181435f1326" }, "Region": 19, "Seed": 73823, "Activation": { "$date": { "$numberLong": "1715110861506" } }, @@ -596,7 +596,7 @@ "Modifier": "VoidT5" }, { - "_id": { "$oid": "663a878d23d1514873170466" }, + "_id": { "$id": "663a878d23d1514873170466" }, "Region": 9, "Seed": 88696, "Activation": { "$date": { "$numberLong": "1715111821951" } }, @@ -607,7 +607,7 @@ "Hard": true }, { - "_id": { "$oid": "663a887d4903098c10992fe6" }, + "_id": { "$id": "663a887d4903098c10992fe6" }, "Region": 6, "Seed": 66337, "Activation": { "$date": { "$numberLong": "1715112061729" } }, @@ -617,7 +617,7 @@ "Modifier": "VoidT2" }, { - "_id": { "$oid": "663a887d4903098c10992fe7" }, + "_id": { "$id": "663a887d4903098c10992fe7" }, "Region": 10, "Seed": 5135, "Activation": { "$date": { "$numberLong": "1715112061729" } }, @@ -627,7 +627,7 @@ "Modifier": "VoidT2" }, { - "_id": { "$oid": "663a8931586c301b1fbe63d3" }, + "_id": { "$id": "663a8931586c301b1fbe63d3" }, "Region": 15, "Seed": 32180, "Activation": { "$date": { "$numberLong": "1715112241196" } }, @@ -637,7 +637,7 @@ "Modifier": "VoidT4" }, { - "_id": { "$oid": "663a8931586c301b1fbe63d4" }, + "_id": { "$id": "663a8931586c301b1fbe63d4" }, "Region": 12, "Seed": 22521, "Activation": { "$date": { "$numberLong": "1715112241196" } }, @@ -647,7 +647,7 @@ "Modifier": "VoidT4" }, { - "_id": { "$oid": "663a8931586c301b1fbe63d5" }, + "_id": { "$id": "663a8931586c301b1fbe63d5" }, "Region": 2, "Seed": 28500, "Activation": { "$date": { "$numberLong": "1715112241196" } }, @@ -657,7 +657,7 @@ "Modifier": "VoidT1" }, { - "_id": { "$oid": "663a8931586c301b1fbe63d6" }, + "_id": { "$id": "663a8931586c301b1fbe63d6" }, "Region": 3, "Seed": 24747, "Activation": { "$date": { "$numberLong": "1715112241196" } }, @@ -667,7 +667,7 @@ "Modifier": "VoidT1" }, { - "_id": { "$oid": "663a8931586c301b1fbe63d7" }, + "_id": { "$id": "663a8931586c301b1fbe63d7" }, "Region": 17, "Seed": 63914, "Activation": { "$date": { "$numberLong": "1715112241196" } }, @@ -679,19 +679,19 @@ } ], "NodeOverrides": [ - { "_id": { "$oid": "549b18e9b029cef5991d6aec" }, "Node": "EuropaHUB", "Hide": true }, - { "_id": { "$oid": "54a1737aeb658f6cbccf70ff" }, "Node": "ErisHUB", "Hide": true }, - { "_id": { "$oid": "54a736ddec12f80bd6e9e326" }, "Node": "VenusHUB", "Hide": true }, - { "_id": { "$oid": "5ad9f9bb6df82a56eabf3d44" }, "Node": "SolNode802", "Seed": 9969639 }, + { "_id": { "$id": "549b18e9b029cef5991d6aec" }, "Node": "EuropaHUB", "Hide": true }, + { "_id": { "$id": "54a1737aeb658f6cbccf70ff" }, "Node": "ErisHUB", "Hide": true }, + { "_id": { "$id": "54a736ddec12f80bd6e9e326" }, "Node": "VenusHUB", "Hide": true }, + { "_id": { "$id": "5ad9f9bb6df82a56eabf3d44" }, "Node": "SolNode802", "Seed": 9969639 }, { - "_id": { "$oid": "5b8817c2bd4f253264d6aa91" }, + "_id": { "$id": "5b8817c2bd4f253264d6aa91" }, "Node": "EarthHUB", "Hide": false, "LevelOverride": "/Lotus/Levels/Proc/Hub/RelayStationHubTwoB", "Activation": { "$date": { "$numberLong": "1535646600000" } } }, { - "_id": { "$oid": "5d24d1f674491d51f8d44473" }, + "_id": { "$id": "5d24d1f674491d51f8d44473" }, "Node": "MercuryHUB", "Hide": true, "LevelOverride": "/Lotus/Levels/Proc/Hub/RelayStationHubHydroid", @@ -700,7 +700,7 @@ ], "VoidTraders": [ { - "_id": { "$oid": "5d1e07a0a38e4a4fdd7cefca" }, + "_id": { "$id": "5d1e07a0a38e4a4fdd7cefca" }, "Activation": { "$date": { "$numberLong": "0" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Character": "Baro'Ki Teel", @@ -736,7 +736,7 @@ ], "PrimeVaultTraders": [ { - "_id": { "$oid": "631f8c4ac36af423770eaa97" }, + "_id": { "$id": "631f8c4ac36af423770eaa97" }, "Activation": { "$date": { "$numberLong": "1712858400000" } }, "InitialStartDate": { "$date": { "$numberLong": "9999999999999" } }, "Node": "TradeHUB1", @@ -896,42 +896,42 @@ ], "VoidStorms": [ { - "_id": { "$oid": "663a7581ced28e18f694b550" }, + "_id": { "$id": "663a7581ced28e18f694b550" }, "Node": "CrewBattleNode519", "Activation": { "$date": { "$numberLong": "1715109601821" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "ActiveMissionTier": "VoidT1" }, { - "_id": { "$oid": "663a7581ced28e18f694b551" }, + "_id": { "$id": "663a7581ced28e18f694b551" }, "Node": "CrewBattleNode515", "Activation": { "$date": { "$numberLong": "1715109601825" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "ActiveMissionTier": "VoidT1" }, { - "_id": { "$oid": "663a7581ced28e18f694b554" }, + "_id": { "$id": "663a7581ced28e18f694b554" }, "Node": "CrewBattleNode536", "Activation": { "$date": { "$numberLong": "1715109601832" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "ActiveMissionTier": "VoidT4" }, { - "_id": { "$oid": "663a7581ced28e18f694b555" }, + "_id": { "$id": "663a7581ced28e18f694b555" }, "Node": "CrewBattleNode539", "Activation": { "$date": { "$numberLong": "1715109601834" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "ActiveMissionTier": "VoidT4" }, { - "_id": { "$oid": "663a7581ced28e18f694b553" }, + "_id": { "$id": "663a7581ced28e18f694b553" }, "Node": "CrewBattleNode521", "Activation": { "$date": { "$numberLong": "1715109601829" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "ActiveMissionTier": "VoidT3" }, { - "_id": { "$oid": "663a7581ced28e18f694b552" }, + "_id": { "$id": "663a7581ced28e18f694b552" }, "Node": "CrewBattleNode535", "Activation": { "$date": { "$numberLong": "1715109601827" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, @@ -956,7 +956,7 @@ "LibraryInfo": { "LastCompletedTargetType": "/Lotus/Types/Game/Library/Targets/Research7Target" }, "PVPChallengeInstances": [ { - "_id": { "$oid": "6635562d036ce37f7f98e264" }, + "_id": { "$id": "6635562d036ce37f7f98e264" }, "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeGameModeComplete", "startDate": { "$date": { "$numberLong": "1714771501460" } }, "endDate": { "$date": { "$numberLong": "9999999999999" } }, @@ -967,7 +967,7 @@ "Category": "PVPChallengeTypeCategory_WEEKLY" }, { - "_id": { "$oid": "6635562d036ce37f7f98e263" }, + "_id": { "$id": "6635562d036ce37f7f98e263" }, "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeGameModeWins", "startDate": { "$date": { "$numberLong": "1714771501460" } }, "endDate": { "$date": { "$numberLong": "9999999999999" } }, @@ -978,7 +978,7 @@ "Category": "PVPChallengeTypeCategory_WEEKLY" }, { - "_id": { "$oid": "6635562d036ce37f7f98e265" }, + "_id": { "$id": "6635562d036ce37f7f98e265" }, "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeOtherChallengeCompleteANY", "startDate": { "$date": { "$numberLong": "1714771501460" } }, "endDate": { "$date": { "$numberLong": "9999999999999" } }, @@ -989,18 +989,18 @@ "Category": "PVPChallengeTypeCategory_WEEKLY" }, { - "_id": { "$oid": "6635562d036ce37f7f98e266" }, + "_id": { "$id": "6635562d036ce37f7f98e266" }, "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeWeeklyStandardSet", "startDate": { "$date": { "$numberLong": "1714771501460" } }, "endDate": { "$date": { "$numberLong": "9999999999999" } }, "params": [{ "n": "ScriptParamValue", "v": 0 }], "isGenerated": true, "PVPMode": "PVPMODE_NONE", - "subChallenges": [{ "$oid": "6635562d036ce37f7f98e263" }, { "$oid": "6635562d036ce37f7f98e264" }, { "$oid": "6635562d036ce37f7f98e265" }], + "subChallenges": [{ "$id": "6635562d036ce37f7f98e263" }, { "$id": "6635562d036ce37f7f98e264" }, { "$id": "6635562d036ce37f7f98e265" }], "Category": "PVPChallengeTypeCategory_WEEKLY_ROOT" }, { - "_id": { "$oid": "6639ca6967c1192987d75fee" }, + "_id": { "$id": "6639ca6967c1192987d75fee" }, "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeFlagReturnEASY", "startDate": { "$date": { "$numberLong": "1715063401824" } }, "endDate": { "$date": { "$numberLong": "9999999999999" } }, @@ -1011,7 +1011,7 @@ "Category": "PVPChallengeTypeCategory_DAILY" }, { - "_id": { "$oid": "6639ca6967c1192987d75fed" }, + "_id": { "$id": "6639ca6967c1192987d75fed" }, "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeMatchCompleteMEDIUM", "startDate": { "$date": { "$numberLong": "1715063401824" } }, "endDate": { "$date": { "$numberLong": "9999999999999" } }, @@ -1022,7 +1022,7 @@ "Category": "PVPChallengeTypeCategory_DAILY" }, { - "_id": { "$oid": "6639ca6967c1192987d75ff2" }, + "_id": { "$id": "6639ca6967c1192987d75ff2" }, "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeMatchCompleteEASY", "startDate": { "$date": { "$numberLong": "1715063401824" } }, "endDate": { "$date": { "$numberLong": "9999999999999" } }, @@ -1033,7 +1033,7 @@ "Category": "PVPChallengeTypeCategory_DAILY" }, { - "_id": { "$oid": "6639ca6967c1192987d75ff1" }, + "_id": { "$id": "6639ca6967c1192987d75ff1" }, "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsPayback_MEDIUM", "startDate": { "$date": { "$numberLong": "1715063401824" } }, "endDate": { "$date": { "$numberLong": "9999999999999" } }, @@ -1044,7 +1044,7 @@ "Category": "PVPChallengeTypeCategory_DAILY" }, { - "_id": { "$oid": "6639ca6967c1192987d75fef" }, + "_id": { "$id": "6639ca6967c1192987d75fef" }, "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsStreakDominationEASY", "startDate": { "$date": { "$numberLong": "1715063401824" } }, "endDate": { "$date": { "$numberLong": "9999999999999" } }, @@ -1055,7 +1055,7 @@ "Category": "PVPChallengeTypeCategory_DAILY" }, { - "_id": { "$oid": "6639ca6967c1192987d75ff0" }, + "_id": { "$id": "6639ca6967c1192987d75ff0" }, "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsWhileInAirHARD", "startDate": { "$date": { "$numberLong": "1715063401824" } }, "endDate": { "$date": { "$numberLong": "9999999999999" } }, @@ -1066,7 +1066,7 @@ "Category": "PVPChallengeTypeCategory_DAILY" }, { - "_id": { "$oid": "6639ca6967c1192987d75ff3" }, + "_id": { "$id": "6639ca6967c1192987d75ff3" }, "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballCatchesMEDIUM", "startDate": { "$date": { "$numberLong": "1715063401824" } }, "endDate": { "$date": { "$numberLong": "9999999999999" } }, @@ -1077,7 +1077,7 @@ "Category": "PVPChallengeTypeCategory_DAILY" }, { - "_id": { "$oid": "6639ca6967c1192987d75ff4" }, + "_id": { "$id": "6639ca6967c1192987d75ff4" }, "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballInterceptionsEASY", "startDate": { "$date": { "$numberLong": "1715063401824" } }, "endDate": { "$date": { "$numberLong": "9999999999999" } }, @@ -1109,64 +1109,64 @@ "Params": "", "ActiveChallenges": [ { - "_id": { "$oid": "001300010000000000000008" }, + "_id": { "$id": "001300010000000000000008" }, "Daily": true, "Activation": { "$date": { "$numberLong": "1715558400000" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Challenge": "/Lotus/Types/Challenges/Seasons/Daily/SeasonDailyFeedMeMore" }, { - "_id": { "$oid": "001300010000000000000009" }, + "_id": { "$id": "001300010000000000000009" }, "Daily": true, "Activation": { "$date": { "$numberLong": "1715644800000" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Challenge": "/Lotus/Types/Challenges/Seasons/Daily/SeasonDailyTwoForOne" }, { - "_id": { "$oid": "001300010000000000000010" }, + "_id": { "$id": "001300010000000000000010" }, "Daily": true, "Activation": { "$date": { "$numberLong": "1715731200000" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Challenge": "/Lotus/Types/Challenges/Seasons/Daily/SeasonDailyKillEnemiesWithFinishers" }, { - "_id": { "$oid": "001300010000000000000001" }, + "_id": { "$id": "001300010000000000000001" }, "Activation": { "$date": { "$numberLong": "1715558400000" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Challenge": "/Lotus/Types/Challenges/Seasons/Weekly/SeasonWeeklyPermanentCompleteMissions" }, { - "_id": { "$oid": "001300010000000000000002" }, + "_id": { "$id": "001300010000000000000002" }, "Activation": { "$date": { "$numberLong": "1715558400000" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Challenge": "/Lotus/Types/Challenges/Seasons/Weekly/SeasonWeeklyPermanentKillEximus" }, { - "_id": { "$oid": "001300010000000000000003" }, + "_id": { "$id": "001300010000000000000003" }, "Activation": { "$date": { "$numberLong": "1715558400000" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Challenge": "/Lotus/Types/Challenges/Seasons/Weekly/SeasonWeeklyPermanentKillEnemies" }, { - "_id": { "$oid": "001300010000000000000004" }, + "_id": { "$id": "001300010000000000000004" }, "Activation": { "$date": { "$numberLong": "1715558400000" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Challenge": "/Lotus/Types/Challenges/Seasons/Weekly/SeasonWeeklyOpenLockers" }, { - "_id": { "$oid": "001300010000000000000005" }, + "_id": { "$id": "001300010000000000000005" }, "Activation": { "$date": { "$numberLong": "1715558400000" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Challenge": "/Lotus/Types/Challenges/Seasons/Weekly/SeasonWeeklyBloodthirsty" }, { - "_id": { "$oid": "001300010000000000000006" }, + "_id": { "$id": "001300010000000000000006" }, "Activation": { "$date": { "$numberLong": "1715558400000" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Challenge": "/Lotus/Types/Challenges/Seasons/WeeklyHard/SeasonWeeklyHardEliteSanctuaryOnslaught" }, { - "_id": { "$oid": "001300010000000000000007" }, + "_id": { "$id": "001300010000000000000007" }, "Activation": { "$date": { "$numberLong": "1715558400000" } }, "Expiry": { "$date": { "$numberLong": "9999999999999" } }, "Challenge": "/Lotus/Types/Challenges/Seasons/WeeklyHard/SeasonWeeklyHardCompleteSortie" diff --git a/static/webui/script.js b/static/webui/script.js index db5b831c..f168ed45 100644 --- a/static/webui/script.js +++ b/static/webui/script.js @@ -157,7 +157,7 @@ function updateInventory() { a.href = "#"; a.onclick = function (event) { event.preventDefault(); - addGearExp("Suits", item.ItemId.$oid, 1_600_000 - item.XP); + addGearExp("Suits", item.ItemId.$id, 1_600_000 - item.XP); }; a.title = "Make Rank 30"; a.innerHTML = ``; @@ -165,7 +165,7 @@ function updateInventory() { } { const a = document.createElement("a"); - a.href = "/webui/powersuit/" + item.ItemId.$oid; + a.href = "/webui/powersuit/" + item.ItemId.$id; a.innerHTML = ``; td.appendChild(a); } @@ -176,7 +176,7 @@ function updateInventory() { event.preventDefault(); const name = prompt("Enter new custom name:"); if (name !== null) { - renameGear("Suits", item.ItemId.$oid, name); + renameGear("Suits", item.ItemId.$id, name); } }; a.title = "Rename"; @@ -188,7 +188,7 @@ function updateInventory() { a.href = "#"; a.onclick = function (event) { event.preventDefault(); - disposeOfGear("Suits", item.ItemId.$oid); + disposeOfGear("Suits", item.ItemId.$id); }; a.title = "Remove"; a.innerHTML = ``; @@ -218,7 +218,7 @@ function updateInventory() { a.href = "#"; a.onclick = function (event) { event.preventDefault(); - addGearExp(category, item.ItemId.$oid, 800_000 - item.XP); + addGearExp(category, item.ItemId.$id, 800_000 - item.XP); }; a.title = "Make Rank 30"; a.innerHTML = ``; @@ -231,7 +231,7 @@ function updateInventory() { event.preventDefault(); const name = prompt("Enter new custom name:"); if (name !== null) { - renameGear(category, item.ItemId.$oid, name); + renameGear(category, item.ItemId.$id, name); } }; a.title = "Rename"; @@ -243,7 +243,7 @@ function updateInventory() { a.href = "#"; a.onclick = function (event) { event.preventDefault(); - disposeOfGear(category, item.ItemId.$oid); + disposeOfGear(category, item.ItemId.$id); }; a.title = "Remove"; a.innerHTML = ``; @@ -298,7 +298,7 @@ function updateInventory() { a.href = "#"; a.onclick = function (event) { event.preventDefault(); - disposeOfGear("Upgrades", item.ItemId.$oid); + disposeOfGear("Upgrades", item.ItemId.$id); }; a.title = "Remove"; a.innerHTML = ``; @@ -336,7 +336,7 @@ function updateInventory() { a.href = "#"; a.onclick = function (event) { event.preventDefault(); - disposeOfGear("Upgrades", item.ItemId.$oid); + disposeOfGear("Upgrades", item.ItemId.$id); }; a.title = "Remove"; a.innerHTML = ``; @@ -394,7 +394,7 @@ function updateInventory() { // Populate powersuit route if (single.getCurrentPath().substr(0, 17) == "/webui/powersuit/") { const oid = single.getCurrentPath().substr(17); - const item = data.Suits.find(x => x.ItemId.$oid == oid); + const item = data.Suits.find(x => x.ItemId.$id == oid); if (item) { if (item.ItemName) { $("#powersuit-route h3").text(item.ItemName); @@ -507,7 +507,7 @@ function addGearExp(category, oid, xp) { const data = {}; data[category] = [ { - ItemId: { $oid: oid }, + ItemId: { $id: oid }, XP: xp } ];