forked from OpenWF/SpaceNinjaServer
		
	feat: implement CreditBundle purchases (#989)
This fixes purchasing one of the few bundles that include these credit bundles. Ex: Essential Damage mod bundles Reviewed-on: OpenWF/SpaceNinjaServer#989 Co-authored-by: nrbdev <itzneonrb@gmail.com> Co-committed-by: nrbdev <itzneonrb@gmail.com>
This commit is contained in:
		
							parent
							
								
									0142aa72a8
								
							
						
					
					
						commit
						e1af6bd598
					
				@ -62,7 +62,9 @@ export const creditBundles: Record<string, number> = {
 | 
			
		||||
    "/Lotus/Types/PickUps/Credits/CorpusArenaCreditRewards/CorpusArenaRewardTwoHard": 175000,
 | 
			
		||||
    "/Lotus/Types/PickUps/Credits/CorpusArenaCreditRewards/CorpusArenaRewardThreeHard": 250000,
 | 
			
		||||
    "/Lotus/Types/StoreItems/CreditBundles/Zariman/TableACreditsCommon": 15000,
 | 
			
		||||
    "/Lotus/Types/StoreItems/CreditBundles/Zariman/TableACreditsUncommon": 30000
 | 
			
		||||
    "/Lotus/Types/StoreItems/CreditBundles/Zariman/TableACreditsUncommon": 30000,
 | 
			
		||||
    "/Lotus/Types/StoreItems/CreditBundles/CreditBundleA": 50000,
 | 
			
		||||
    "/Lotus/Types/StoreItems/CreditBundles/CreditBundleC": 175000
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export const fusionBundles: Record<string, number> = {
 | 
			
		||||
 | 
			
		||||
@ -25,6 +25,7 @@ import {
 | 
			
		||||
} from "warframe-public-export-plus";
 | 
			
		||||
import { config } from "./configService";
 | 
			
		||||
import { TInventoryDatabaseDocument } from "../models/inventoryModels/inventoryModel";
 | 
			
		||||
import { creditBundles } from "./missionInventoryUpdateService";
 | 
			
		||||
 | 
			
		||||
export const getStoreItemCategory = (storeItem: string): string => {
 | 
			
		||||
    const storeItemString = getSubstringFromKeyword(storeItem, "StoreItems/");
 | 
			
		||||
@ -330,6 +331,22 @@ const handleBoosterPackPurchase = async (
 | 
			
		||||
    return purchaseResponse;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const handleCreditBundlePurchase = async (
 | 
			
		||||
    typeName: string,
 | 
			
		||||
    inventory: TInventoryDatabaseDocument
 | 
			
		||||
): Promise<IPurchaseResponse> => {
 | 
			
		||||
    if (typeName && typeName in creditBundles) {
 | 
			
		||||
        const creditsAmount = creditBundles[typeName];
 | 
			
		||||
 | 
			
		||||
        inventory.RegularCredits += creditsAmount;
 | 
			
		||||
        await inventory.save();
 | 
			
		||||
 | 
			
		||||
        return { InventoryChanges: { RegularCredits: creditsAmount } };
 | 
			
		||||
    } else {
 | 
			
		||||
        throw new Error(`unknown credit bundle: ${typeName}`);
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
//TODO: change to getInventory, apply changes then save at the end
 | 
			
		||||
const handleTypesPurchase = async (
 | 
			
		||||
    typesName: string,
 | 
			
		||||
@ -345,6 +362,8 @@ const handleTypesPurchase = async (
 | 
			
		||||
            return handleBoosterPackPurchase(typesName, inventory, quantity);
 | 
			
		||||
        case "SlotItems":
 | 
			
		||||
            return handleSlotPurchase(typesName, inventory, quantity);
 | 
			
		||||
        case "CreditBundles":
 | 
			
		||||
            return handleCreditBundlePurchase(typesName, inventory);
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user