chore: consider IInventoryChanges being able to contain currency changes
This commit is contained in:
		
							parent
							
								
									e909216001
								
							
						
					
					
						commit
						4b8bae258d
					
				@ -82,10 +82,10 @@ export const combineInventoryChanges = (InventoryChanges: IInventoryChanges, del
 | 
				
			|||||||
            for (const item of right) {
 | 
					            for (const item of right) {
 | 
				
			||||||
                left.push(item);
 | 
					                left.push(item);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        } else {
 | 
					        } else if (typeof delta[key] == "object") {
 | 
				
			||||||
            console.assert(key.substring(-3) == "Bin");
 | 
					            console.assert(key.substring(-3) == "Bin");
 | 
				
			||||||
            const left = InventoryChanges[key] as IBinChanges;
 | 
					            const left = InventoryChanges[key] as IBinChanges;
 | 
				
			||||||
            const right: IBinChanges = delta[key] as IBinChanges;
 | 
					            const right: IBinChanges = delta[key];
 | 
				
			||||||
            left.count += right.count;
 | 
					            left.count += right.count;
 | 
				
			||||||
            left.platinum += right.platinum;
 | 
					            left.platinum += right.platinum;
 | 
				
			||||||
            left.Slots += right.Slots;
 | 
					            left.Slots += right.Slots;
 | 
				
			||||||
@ -93,6 +93,8 @@ export const combineInventoryChanges = (InventoryChanges: IInventoryChanges, del
 | 
				
			|||||||
                left.Extra ??= 0;
 | 
					                left.Extra ??= 0;
 | 
				
			||||||
                left.Extra += right.Extra;
 | 
					                left.Extra += right.Extra;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            logger.warn(`inventory change not merged: ${key}`);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@ -477,7 +479,11 @@ export const updateSlots = async (accountId: string, slotName: SlotNames, slotAm
 | 
				
			|||||||
    await inventory.save();
 | 
					    await inventory.save();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const updateCurrency = async (price: number, usePremium: boolean, accountId: string) => {
 | 
					export const updateCurrency = async (
 | 
				
			||||||
 | 
					    price: number,
 | 
				
			||||||
 | 
					    usePremium: boolean,
 | 
				
			||||||
 | 
					    accountId: string
 | 
				
			||||||
 | 
					): Promise<IInventoryChanges> => {
 | 
				
			||||||
    if (usePremium ? config.infinitePlatinum : config.infiniteCredits) {
 | 
					    if (usePremium ? config.infinitePlatinum : config.infiniteCredits) {
 | 
				
			||||||
        return {};
 | 
					        return {};
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -19,6 +19,10 @@ export interface IPurchaseParams {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export type IInventoryChanges = {
 | 
					export type IInventoryChanges = {
 | 
				
			||||||
    [_ in SlotNames]?: IBinChanges;
 | 
					    [_ in SlotNames]?: IBinChanges;
 | 
				
			||||||
 | 
					} & {
 | 
				
			||||||
 | 
					    RegularCredits?: number;
 | 
				
			||||||
 | 
					    PremiumCredits?: number;
 | 
				
			||||||
 | 
					    PremiumCreditsFree?: number;
 | 
				
			||||||
} & Record<string, IBinChanges | number | object[]>;
 | 
					} & Record<string, IBinChanges | number | object[]>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface IPurchaseResponse {
 | 
					export interface IPurchaseResponse {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user