add toStoreItem & fromStoreItem
This commit is contained in:
		
							parent
							
								
									6b35408144
								
							
						
					
					
						commit
						6bf365ddc5
					
				@ -1,6 +1,7 @@
 | 
			
		||||
import { toMongoDate, toOid } from "@/src/helpers/inventoryHelpers";
 | 
			
		||||
import { config } from "@/src/services/configService";
 | 
			
		||||
import { addMiscItems, getInventory } from "@/src/services/inventoryService";
 | 
			
		||||
import { fromStoreItem } from "@/src/services/itemDataService";
 | 
			
		||||
import { getAccountIdForRequest } from "@/src/services/loginService";
 | 
			
		||||
import { getRandomInt, getRandomWeightedRewardUc } from "@/src/services/rngService";
 | 
			
		||||
import { IMongoDate, IOid } from "@/src/types/commonTypes";
 | 
			
		||||
@ -58,7 +59,7 @@ export const dronesController: RequestHandler = async (req, res) => {
 | 
			
		||||
                : 0;
 | 
			
		||||
        const resource = getRandomWeightedRewardUc(system.resources, droneMeta.probabilities)!;
 | 
			
		||||
        //logger.debug(`drone rolled`, resource);
 | 
			
		||||
        drone.ResourceType = "/Lotus/" + resource.StoreItem.substring(18);
 | 
			
		||||
        drone.ResourceType = fromStoreItem(resource.StoreItem);
 | 
			
		||||
        const resourceMeta = ExportResources[drone.ResourceType];
 | 
			
		||||
        if (resourceMeta.pickupQuantity) {
 | 
			
		||||
            const pickupsToCollect = droneMeta.binCapacity * droneMeta.capacityMultipliers[resource.Rarity];
 | 
			
		||||
 | 
			
		||||
@ -35,7 +35,7 @@ import {
 | 
			
		||||
    IUpdateChallengeProgressRequest
 | 
			
		||||
} from "../types/requestTypes";
 | 
			
		||||
import { logger } from "@/src/utils/logger";
 | 
			
		||||
import { convertInboxMessage, getExalted, getKeyChainItems } from "@/src/services/itemDataService";
 | 
			
		||||
import { convertInboxMessage, fromStoreItem, getExalted, getKeyChainItems } from "@/src/services/itemDataService";
 | 
			
		||||
import {
 | 
			
		||||
    EquipmentFeatures,
 | 
			
		||||
    IEquipmentClient,
 | 
			
		||||
@ -1260,7 +1260,7 @@ export const addKeyChainItems = async (
 | 
			
		||||
        `adding key chain items ${keyChainItems.join()} for ${keyChainData.KeyChain} at stage ${keyChainData.ChainStage}`
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    const nonStoreItems = keyChainItems.map(item => item.replace("StoreItems/", ""));
 | 
			
		||||
    const nonStoreItems = keyChainItems.map(item => fromStoreItem(item));
 | 
			
		||||
 | 
			
		||||
    //TODO: inventoryChanges is not typed correctly
 | 
			
		||||
    const inventoryChanges = {};
 | 
			
		||||
 | 
			
		||||
@ -244,3 +244,11 @@ export const convertInboxMessage = (message: IInboxMessage): IMessage => {
 | 
			
		||||
        r: false
 | 
			
		||||
    } satisfies IMessage;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export const toStoreItem = (type: string): string => {
 | 
			
		||||
    return "/Lotus/StoreItems/" + type.substring("/Lotus/".length);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export const fromStoreItem = (type: string): string => {
 | 
			
		||||
    return "/Lotus/" + type.substring("/Lotus/StoreItems/".length);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -27,6 +27,7 @@ import {
 | 
			
		||||
} from "warframe-public-export-plus";
 | 
			
		||||
import { config } from "./configService";
 | 
			
		||||
import { TInventoryDatabaseDocument } from "../models/inventoryModels/inventoryModel";
 | 
			
		||||
import { fromStoreItem, toStoreItem } from "./itemDataService";
 | 
			
		||||
 | 
			
		||||
export const getStoreItemCategory = (storeItem: string): string => {
 | 
			
		||||
    const storeItemString = getSubstringFromKeyword(storeItem, "StoreItems/");
 | 
			
		||||
@ -240,7 +241,7 @@ export const handleStoreItemAcquisition = async (
 | 
			
		||||
        await handleBundleAcqusition(storeItemName, inventory, quantity, purchaseResponse.InventoryChanges);
 | 
			
		||||
    } else {
 | 
			
		||||
        const storeCategory = getStoreItemCategory(storeItemName);
 | 
			
		||||
        const internalName = storeItemName.replace("/StoreItems", "");
 | 
			
		||||
        const internalName = fromStoreItem(storeItemName);
 | 
			
		||||
        logger.debug(`store category ${storeCategory}`);
 | 
			
		||||
        if (!ignorePurchaseQuantity) {
 | 
			
		||||
            if (internalName in ExportGear) {
 | 
			
		||||
@ -328,8 +329,7 @@ const handleBoosterPackPurchase = async (
 | 
			
		||||
            const result = getRandomWeightedRewardUc(pack.components, weights);
 | 
			
		||||
            if (result) {
 | 
			
		||||
                logger.debug(`booster pack rolled`, result);
 | 
			
		||||
                purchaseResponse.BoosterPackItems +=
 | 
			
		||||
                    result.Item.split("/Lotus/").join("/Lotus/StoreItems/") + ',{"lvl":0};';
 | 
			
		||||
                purchaseResponse.BoosterPackItems += toStoreItem(result.Item) + ',{"lvl":0};';
 | 
			
		||||
                combineInventoryChanges(
 | 
			
		||||
                    purchaseResponse.InventoryChanges,
 | 
			
		||||
                    (await addItem(inventory, result.Item, 1)).InventoryChanges
 | 
			
		||||
 | 
			
		||||
@ -3,7 +3,7 @@ import { isEmptyObject } from "@/src/helpers/general";
 | 
			
		||||
import { TInventoryDatabaseDocument } from "@/src/models/inventoryModels/inventoryModel";
 | 
			
		||||
import { createMessage } from "@/src/services/inboxService";
 | 
			
		||||
import { addItem, addKeyChainItems } from "@/src/services/inventoryService";
 | 
			
		||||
import { getKeyChainMessage, getLevelKeyRewards } from "@/src/services/itemDataService";
 | 
			
		||||
import { fromStoreItem, getKeyChainMessage, getLevelKeyRewards } from "@/src/services/itemDataService";
 | 
			
		||||
import {
 | 
			
		||||
    IInventoryDatabase,
 | 
			
		||||
    IQuestKeyClient,
 | 
			
		||||
@ -157,7 +157,7 @@ export const completeQuest = async (inventory: TInventoryDatabaseDocument, quest
 | 
			
		||||
                addFixedLevelRewards(fixedLevelRewards.levelKeyRewards, inventory, missionRewards);
 | 
			
		||||
 | 
			
		||||
                for (const reward of missionRewards) {
 | 
			
		||||
                    await addItem(inventory, reward.StoreItem.replace("StoreItems/", ""), reward.ItemCount);
 | 
			
		||||
                    await addItem(inventory, fromStoreItem(reward.StoreItem), reward.ItemCount);
 | 
			
		||||
                }
 | 
			
		||||
            } else if (fixedLevelRewards.levelKeyRewards2) {
 | 
			
		||||
                for (const reward of fixedLevelRewards.levelKeyRewards2) {
 | 
			
		||||
@ -166,9 +166,9 @@ export const completeQuest = async (inventory: TInventoryDatabaseDocument, quest
 | 
			
		||||
                        continue;
 | 
			
		||||
                    }
 | 
			
		||||
                    if (reward.rewardType == "RT_RESOURCE") {
 | 
			
		||||
                        await addItem(inventory, reward.itemType.replace("StoreItems/", ""), reward.amount);
 | 
			
		||||
                        await addItem(inventory, fromStoreItem(reward.itemType), reward.amount);
 | 
			
		||||
                    } else {
 | 
			
		||||
                        await addItem(inventory, reward.itemType.replace("StoreItems/", ""));
 | 
			
		||||
                        await addItem(inventory, fromStoreItem(reward.itemType));
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user