Mod fusion
This commit is contained in:
		
							parent
							
								
									37e5e0defa
								
							
						
					
					
						commit
						6b8c412c74
					
				
							
								
								
									
										23
									
								
								src/controllers/api/artifactsController.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								src/controllers/api/artifactsController.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					import { upgradeMod } from "@/src/services/inventoryService";
 | 
				
			||||||
 | 
					import { RequestHandler } from "express";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// eslint-disable-next-line @typescript-eslint/no-misused-promises
 | 
				
			||||||
 | 
					const artifactsController: RequestHandler = async (req, res) => {
 | 
				
			||||||
 | 
					    const [data] = String(req.body).split("\n");
 | 
				
			||||||
 | 
					    const id = req.query.accountId as string;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // TODO - salt check
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    try {
 | 
				
			||||||
 | 
					        // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
 | 
				
			||||||
 | 
					        const parsedData = JSON.parse(data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
 | 
				
			||||||
 | 
					        await upgradeMod(parsedData, id);
 | 
				
			||||||
 | 
					        res.json({});
 | 
				
			||||||
 | 
					    } catch (err) {
 | 
				
			||||||
 | 
					        console.error("Error parsing JSON data:", err);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export { artifactsController };
 | 
				
			||||||
@ -83,6 +83,7 @@ const missionInventoryUpdateController: RequestHandler = async (req, res) => {
 | 
				
			|||||||
- [x]  CreditsBonus
 | 
					- [x]  CreditsBonus
 | 
				
			||||||
- [x]  MissionCredits
 | 
					- [x]  MissionCredits
 | 
				
			||||||
- [ ]  InventoryChanges
 | 
					- [ ]  InventoryChanges
 | 
				
			||||||
 | 
					- [ ]  FusionPoints int
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export { missionInventoryUpdateController };
 | 
					export { missionInventoryUpdateController };
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
import { Model, Schema, Types, model } from "mongoose";
 | 
					import { Model, Schema, Types, model } from "mongoose";
 | 
				
			||||||
import { FlavourItem, RawUpgrade, MiscItem, IInventoryDatabase, Booster } from "../types/inventoryTypes/inventoryTypes";
 | 
					import { FlavourItem, RawUpgrade, MiscItem, IInventoryDatabase, Booster } from "../types/inventoryTypes/inventoryTypes";
 | 
				
			||||||
import { Oid } from "../types/commonTypes";
 | 
					import { Oid } from "../types/commonTypes";
 | 
				
			||||||
import { ISuitDatabase, ISuitDocument } from "@/src/types/inventoryTypes/SuitTypes";
 | 
					import { ISuitDatabase } from "@/src/types/inventoryTypes/SuitTypes";
 | 
				
			||||||
import { IWeaponDatabase } from "@/src/types/inventoryTypes/weaponTypes";
 | 
					import { IWeaponDatabase } from "@/src/types/inventoryTypes/weaponTypes";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const abilityOverrideSchema = new Schema({
 | 
					const abilityOverrideSchema = new Schema({
 | 
				
			||||||
@ -71,6 +71,24 @@ const BoosterSchema = new Schema({
 | 
				
			|||||||
    ItemType: String
 | 
					    ItemType: String
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const RawUpgrades = new Schema({
 | 
				
			||||||
 | 
					    ItemType: String,
 | 
				
			||||||
 | 
					    UpgradeFingerprint: String,
 | 
				
			||||||
 | 
					    PendingRerollFingerprint: String,
 | 
				
			||||||
 | 
					    ItemCount: Number
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RawUpgrades.set("toJSON", {
 | 
				
			||||||
 | 
					    transform(_document, returnedObject) {
 | 
				
			||||||
 | 
					        // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
 | 
				
			||||||
 | 
					        returnedObject.ItemId = { $oid: returnedObject._id.toString() } satisfies Oid;
 | 
				
			||||||
 | 
					        // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
 | 
				
			||||||
 | 
					        returnedObject.LastAdded = { $oid: returnedObject.__v.toString() } satisfies Oid;
 | 
				
			||||||
 | 
					        delete returnedObject._id;
 | 
				
			||||||
 | 
					        delete returnedObject.__v;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
WeaponSchema.set("toJSON", {
 | 
					WeaponSchema.set("toJSON", {
 | 
				
			||||||
    transform(_document, returnedObject) {
 | 
					    transform(_document, returnedObject) {
 | 
				
			||||||
        // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
 | 
					        // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
 | 
				
			||||||
@ -181,7 +199,7 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>({
 | 
				
			|||||||
    MiscItems: [Schema.Types.Mixed],
 | 
					    MiscItems: [Schema.Types.Mixed],
 | 
				
			||||||
    ChallengesFixVersion: Number,
 | 
					    ChallengesFixVersion: Number,
 | 
				
			||||||
    ChallengeProgress: [Schema.Types.Mixed],
 | 
					    ChallengeProgress: [Schema.Types.Mixed],
 | 
				
			||||||
    RawUpgrades: [Schema.Types.Mixed],
 | 
					    RawUpgrades: [RawUpgrades],
 | 
				
			||||||
    ReceivedStartingGear: Boolean,
 | 
					    ReceivedStartingGear: Boolean,
 | 
				
			||||||
    Suits: [suitSchema],
 | 
					    Suits: [suitSchema],
 | 
				
			||||||
    LongGuns: [WeaponSchema],
 | 
					    LongGuns: [WeaponSchema],
 | 
				
			||||||
@ -344,7 +362,7 @@ type InventoryDocumentProps = {
 | 
				
			|||||||
    Boosters: Types.DocumentArray<Booster>;
 | 
					    Boosters: Types.DocumentArray<Booster>;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type InventoryModelType = Model<IInventoryDatabase, {}, InventoryDocumentProps>;
 | 
					type InventoryModelType = Model<IInventoryDatabase, object, InventoryDocumentProps>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const Inventory = model<IInventoryDatabase, InventoryModelType>("Inventory", inventorySchema);
 | 
					const Inventory = model<IInventoryDatabase, InventoryModelType>("Inventory", inventorySchema);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -29,6 +29,7 @@ import { updateSessionGetController, updateSessionPostController } from "@/src/c
 | 
				
			|||||||
import { viewController } from "@/src/controllers/api/viewController";
 | 
					import { viewController } from "@/src/controllers/api/viewController";
 | 
				
			||||||
import { joinSessionController } from "@/src/controllers/api/joinSessionController";
 | 
					import { joinSessionController } from "@/src/controllers/api/joinSessionController";
 | 
				
			||||||
import { saveLoadoutController } from "@/src/controllers/api/saveLoadout";
 | 
					import { saveLoadoutController } from "@/src/controllers/api/saveLoadout";
 | 
				
			||||||
 | 
					import { artifactsController } from "../controllers/api/artifactsController";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import express from "express";
 | 
					import express from "express";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -58,6 +59,7 @@ apiRouter.get("/deleteSession.php", deleteSessionController);
 | 
				
			|||||||
apiRouter.get("/logout.php", logoutController);
 | 
					apiRouter.get("/logout.php", logoutController);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// post
 | 
					// post
 | 
				
			||||||
 | 
					apiRouter.post("/artifacts.php", artifactsController);
 | 
				
			||||||
apiRouter.post("/findSessions.php", findSessionsController);
 | 
					apiRouter.post("/findSessions.php", findSessionsController);
 | 
				
			||||||
// eslint-disable-next-line @typescript-eslint/no-misused-promises
 | 
					// eslint-disable-next-line @typescript-eslint/no-misused-promises
 | 
				
			||||||
apiRouter.post("/purchase.php", purchaseController);
 | 
					apiRouter.post("/purchase.php", purchaseController);
 | 
				
			||||||
 | 
				
			|||||||
@ -5,13 +5,14 @@ import { Types } from "mongoose";
 | 
				
			|||||||
import { ISuitResponse } from "@/src/types/inventoryTypes/SuitTypes";
 | 
					import { ISuitResponse } from "@/src/types/inventoryTypes/SuitTypes";
 | 
				
			||||||
import { SlotType } from "@/src/types/purchaseTypes";
 | 
					import { SlotType } from "@/src/types/purchaseTypes";
 | 
				
			||||||
import { IWeaponResponse } from "@/src/types/inventoryTypes/weaponTypes";
 | 
					import { IWeaponResponse } from "@/src/types/inventoryTypes/weaponTypes";
 | 
				
			||||||
import { ChallengeProgress, FlavourItem, IInventoryDatabaseDocument } from "@/src/types/inventoryTypes/inventoryTypes";
 | 
					 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
    MissionInventoryUpdate,
 | 
					    ChallengeProgress,
 | 
				
			||||||
    MissionInventoryUpdateCard,
 | 
					    FlavourItem,
 | 
				
			||||||
    MissionInventoryUpdateGear,
 | 
					    IInventoryDatabaseDocument,
 | 
				
			||||||
    MissionInventoryUpdateItem
 | 
					    MiscItem,
 | 
				
			||||||
} from "../types/missionInventoryUpdateType";
 | 
					    RawUpgrade
 | 
				
			||||||
 | 
					} from "@/src/types/inventoryTypes/inventoryTypes";
 | 
				
			||||||
 | 
					import { MissionInventoryUpdate, MissionInventoryUpdateGear } from "../types/missionInventoryUpdateType";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const createInventory = async (accountOwnerId: Types.ObjectId) => {
 | 
					const createInventory = async (accountOwnerId: Types.ObjectId) => {
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
@ -130,21 +131,33 @@ const addGearExpByCategory = (
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const addItemsByCategory = (
 | 
					const addMiscItems = (inventory: IInventoryDatabaseDocument, itemsArray: MiscItem[] | undefined) => {
 | 
				
			||||||
    inventory: IInventoryDatabaseDocument,
 | 
					    const { MiscItems } = inventory;
 | 
				
			||||||
    itemsArray: (MissionInventoryUpdateItem | MissionInventoryUpdateCard)[] | undefined,
 | 
					 | 
				
			||||||
    categoryName: "RawUpgrades" | "MiscItems"
 | 
					 | 
				
			||||||
) => {
 | 
					 | 
				
			||||||
    const category = inventory[categoryName];
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    itemsArray?.forEach(({ ItemCount, ItemType }) => {
 | 
					    itemsArray?.forEach(({ ItemCount, ItemType }) => {
 | 
				
			||||||
        const itemIndex = category.findIndex(i => i.ItemType === ItemType);
 | 
					        const itemIndex = MiscItems.findIndex(i => i.ItemType === ItemType);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (itemIndex !== -1) {
 | 
					        if (itemIndex !== -1) {
 | 
				
			||||||
            category[itemIndex].ItemCount += ItemCount;
 | 
					            MiscItems[itemIndex].ItemCount += ItemCount;
 | 
				
			||||||
            inventory.markModified(`${categoryName}.${itemIndex}.ItemCount`);
 | 
					            inventory.markModified(`MiscItems.${itemIndex}.ItemCount`);
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            category.push({ ItemCount, ItemType });
 | 
					            MiscItems.push({ ItemCount, ItemType });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const addMods = (inventory: IInventoryDatabaseDocument, itemsArray: RawUpgrade[] | undefined) => {
 | 
				
			||||||
 | 
					    const { RawUpgrades } = inventory;
 | 
				
			||||||
 | 
					    itemsArray?.forEach(({ ItemType, ItemCount, UpgradeFingerprint }) => {
 | 
				
			||||||
 | 
					        const itemIndex = RawUpgrades.findIndex(
 | 
				
			||||||
 | 
					            i => i.ItemType === ItemType && i.UpgradeFingerprint === UpgradeFingerprint
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (itemIndex !== -1) {
 | 
				
			||||||
 | 
					            RawUpgrades[itemIndex].ItemCount += ItemCount;
 | 
				
			||||||
 | 
					            inventory.markModified(`RawUpgrades.${itemIndex}.ItemCount`);
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            RawUpgrades.push({ ItemCount, ItemType });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@ -171,7 +184,8 @@ export const missionInventoryUpdate = async (data: MissionInventoryUpdate, accou
 | 
				
			|||||||
    const { RawUpgrades, MiscItems, RegularCredits, ChallengeProgress } = data;
 | 
					    const { RawUpgrades, MiscItems, RegularCredits, ChallengeProgress } = data;
 | 
				
			||||||
    const inventory = await getInventory(accountId);
 | 
					    const inventory = await getInventory(accountId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // TODO - multipliers logic
 | 
					    // TODO - multipliers logic for mission reward (looted comes multiplied)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // credits
 | 
					    // credits
 | 
				
			||||||
    inventory.RegularCredits += RegularCredits || 0;
 | 
					    inventory.RegularCredits += RegularCredits || 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -179,8 +193,8 @@ export const missionInventoryUpdate = async (data: MissionInventoryUpdate, accou
 | 
				
			|||||||
    gearKeys.forEach((key: GearKeysType) => addGearExpByCategory(inventory, data[key], key));
 | 
					    gearKeys.forEach((key: GearKeysType) => addGearExpByCategory(inventory, data[key], key));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // other
 | 
					    // other
 | 
				
			||||||
    addItemsByCategory(inventory, RawUpgrades, "RawUpgrades"); // TODO - check mods fusion level
 | 
					    addMods(inventory, RawUpgrades);
 | 
				
			||||||
    addItemsByCategory(inventory, MiscItems, "MiscItems");
 | 
					    addMiscItems(inventory, MiscItems);
 | 
				
			||||||
    addChallenges(inventory, ChallengeProgress);
 | 
					    addChallenges(inventory, ChallengeProgress);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const changedInventory = await inventory.save();
 | 
					    const changedInventory = await inventory.save();
 | 
				
			||||||
@ -206,4 +220,62 @@ export const addBooster = async (ItemType: string, time: number, accountId: stri
 | 
				
			|||||||
    await inventory.save();
 | 
					    await inventory.save();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const upgradeMod = async (
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        Upgrade,
 | 
				
			||||||
 | 
					        LevelDiff,
 | 
				
			||||||
 | 
					        Cost,
 | 
				
			||||||
 | 
					        FusionPointCost
 | 
				
			||||||
 | 
					    }: { Upgrade: RawUpgrade; LevelDiff: number; Cost: number; FusionPointCost: number },
 | 
				
			||||||
 | 
					    accountId: string
 | 
				
			||||||
 | 
					): Promise<void> => {
 | 
				
			||||||
 | 
					    const inventory = await getInventory(accountId);
 | 
				
			||||||
 | 
					    const { RawUpgrades } = inventory;
 | 
				
			||||||
 | 
					    const { ItemCount, ItemType, UpgradeFingerprint } = Upgrade;
 | 
				
			||||||
 | 
					    const itemIndex = RawUpgrades.findIndex(
 | 
				
			||||||
 | 
					        i => i.ItemType === ItemType && i.UpgradeFingerprint === UpgradeFingerprint
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const safeUpgradeFingerprint = UpgradeFingerprint || '{"lvl":0}';
 | 
				
			||||||
 | 
					    // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
 | 
				
			||||||
 | 
					    const parsedUpgradeFingerprint = JSON.parse(safeUpgradeFingerprint);
 | 
				
			||||||
 | 
					    parsedUpgradeFingerprint.lvl += LevelDiff;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!ItemCount) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    RawUpgrades[itemIndex].ItemCount--;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (RawUpgrades[itemIndex].ItemCount > 0) {
 | 
				
			||||||
 | 
					        inventory.markModified(`RawUpgrades.${itemIndex}.ItemCount`);
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        RawUpgrades.splice(itemIndex, 1);
 | 
				
			||||||
 | 
					        inventory.markModified(`RawUpgrades`);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    addMods(inventory, [{ ItemType, ItemCount: 1, UpgradeFingerprint: JSON.stringify(parsedUpgradeFingerprint) }]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    inventory.RegularCredits -= Cost;
 | 
				
			||||||
 | 
					    inventory.FusionPoints -= FusionPointCost;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    await inventory.save();
 | 
				
			||||||
 | 
					    // {
 | 
				
			||||||
 | 
					    //     "Upgrade": {
 | 
				
			||||||
 | 
					    //         ItemType: "/Lotus/Upgrades/Mods/Warframe/Beginner/AvatarShieldMaxModBeginner",
 | 
				
			||||||
 | 
					    //         ItemId: {
 | 
				
			||||||
 | 
					    //             $oid: ""
 | 
				
			||||||
 | 
					    //         },
 | 
				
			||||||
 | 
					    //         UpgradeFingerprint: '{"lvl":1}',
 | 
				
			||||||
 | 
					    //         PendingRerollFingerprint: "",
 | 
				
			||||||
 | 
					    //         ItemCount: 2,
 | 
				
			||||||
 | 
					    //         LastAdded: {
 | 
				
			||||||
 | 
					    //             $oid: "64f01ab0c4dfa3a8ef090043"
 | 
				
			||||||
 | 
					    //         }
 | 
				
			||||||
 | 
					    //     }
 | 
				
			||||||
 | 
					    //     "LevelDiff": 1,
 | 
				
			||||||
 | 
					    //     "Consumed": [],
 | 
				
			||||||
 | 
					    //     "Cost": 483,
 | 
				
			||||||
 | 
					    //     "FusionPointCost": 10
 | 
				
			||||||
 | 
					    // }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export { createInventory, addPowerSuit };
 | 
					export { createInventory, addPowerSuit };
 | 
				
			||||||
 | 
				
			|||||||
@ -377,11 +377,6 @@ export interface FlavourItem {
 | 
				
			|||||||
    ItemType: string;
 | 
					    ItemType: string;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface RawUpgrade {
 | 
					 | 
				
			||||||
    ItemCount: number;
 | 
					 | 
				
			||||||
    ItemType: string;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface MiscItem {
 | 
					export interface MiscItem {
 | 
				
			||||||
    ItemCount: number;
 | 
					    ItemCount: number;
 | 
				
			||||||
    ItemType: string;
 | 
					    ItemType: string;
 | 
				
			||||||
@ -928,9 +923,11 @@ export interface Progress {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface RawUpgrade {
 | 
					export interface RawUpgrade {
 | 
				
			||||||
    ItemCount: number;
 | 
					 | 
				
			||||||
    LastAdded?: Oid;
 | 
					 | 
				
			||||||
    ItemType: string;
 | 
					    ItemType: string;
 | 
				
			||||||
 | 
					    ItemCount: number;
 | 
				
			||||||
 | 
					    UpgradeFingerprint?: string;
 | 
				
			||||||
 | 
					    PendingRerollFingerprint?: string;
 | 
				
			||||||
 | 
					    LastAdded?: Oid;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface Scoop {
 | 
					export interface Scoop {
 | 
				
			||||||
 | 
				
			|||||||
@ -1,14 +1,14 @@
 | 
				
			|||||||
interface MongooseId{
 | 
					interface MongooseId {
 | 
				
			||||||
    $oid: string;
 | 
					    $oid: string;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
interface ExpireDate{
 | 
					interface ExpireDate {
 | 
				
			||||||
    $date: {
 | 
					    $date: {
 | 
				
			||||||
        $numberLong: string;
 | 
					        $numberLong: string;
 | 
				
			||||||
    }
 | 
					    };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface MissionInventoryUpdateGear{
 | 
					export interface MissionInventoryUpdateGear {
 | 
				
			||||||
    ItemType: string;
 | 
					    ItemType: string;
 | 
				
			||||||
    ItemName: string;
 | 
					    ItemName: string;
 | 
				
			||||||
    ItemId: MongooseId;
 | 
					    ItemId: MongooseId;
 | 
				
			||||||
@ -32,25 +32,25 @@ export interface MissionInventoryUpdateGear{
 | 
				
			|||||||
    ArchonCrystalUpgrades: any[];
 | 
					    ArchonCrystalUpgrades: any[];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface MissionInventoryUpdateItem{
 | 
					export interface MissionInventoryUpdateItem {
 | 
				
			||||||
    ItemCount: number;
 | 
					    ItemCount: number;
 | 
				
			||||||
    ItemType: string;
 | 
					    ItemType: string;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface MissionInventoryUpdateCard extends MissionInventoryUpdateItem{
 | 
					export interface MissionInventoryUpdateCard extends MissionInventoryUpdateItem {
 | 
				
			||||||
    ItemId: MongooseId;
 | 
					    ItemId: MongooseId;
 | 
				
			||||||
    UpgradeFingerprint: string;
 | 
					    UpgradeFingerprint: string;
 | 
				
			||||||
    PendingRerollFingerprint: string;
 | 
					    PendingRerollFingerprint: string;
 | 
				
			||||||
    LastAdded: MongooseId;
 | 
					    LastAdded: MongooseId;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
interface MissionInventoryUpdateChallange{
 | 
					interface MissionInventoryUpdateChallange {
 | 
				
			||||||
    Name: string;
 | 
					    Name: string;
 | 
				
			||||||
    Progress: number;
 | 
					    Progress: number;
 | 
				
			||||||
    Completed: any[];
 | 
					    Completed: any[];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface MissionInventoryUpdate{
 | 
					export interface MissionInventoryUpdate {
 | 
				
			||||||
    rewardsMultiplier?: number;
 | 
					    rewardsMultiplier?: number;
 | 
				
			||||||
    ActiveBoosters?: any[];
 | 
					    ActiveBoosters?: any[];
 | 
				
			||||||
    LongGuns?: MissionInventoryUpdateGear[];
 | 
					    LongGuns?: MissionInventoryUpdateGear[];
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user