feat: purchase ship decorations #299
@ -116,6 +116,23 @@ export const addItem = async (
 | 
				
			|||||||
                    FlavourItems: [await addCustomization(typeName, accountId)]
 | 
					                    FlavourItems: [await addCustomization(typeName, accountId)]
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
 | 
					        case "Objects": {
 | 
				
			||||||
 | 
					            // /Lotus/Objects/Tenno/Props/TnoLisetTextProjector (Note Beacon)
 | 
				
			||||||
 | 
					            const inventory = await getInventory(accountId);
 | 
				
			||||||
 | 
					            const changes = [
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    ItemType: typeName,
 | 
				
			||||||
 | 
					                    ItemCount: quantity
 | 
				
			||||||
 | 
					                } satisfies IMiscItem
 | 
				
			||||||
 | 
					            ];
 | 
				
			||||||
 | 
					            addShipDecorations(inventory, changes);
 | 
				
			||||||
 | 
					            await inventory.save();
 | 
				
			||||||
 | 
					            return {
 | 
				
			||||||
 | 
					                InventoryChanges: {
 | 
				
			||||||
 | 
					                    ShipDecorations: changes
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        case "Types":
 | 
					        case "Types":
 | 
				
			||||||
            switch (typeName.substr(1).split("/")[2]) {
 | 
					            switch (typeName.substr(1).split("/")[2]) {
 | 
				
			||||||
                case "AvatarImages":
 | 
					                case "AvatarImages":
 | 
				
			||||||
@ -136,6 +153,24 @@ export const addItem = async (
 | 
				
			|||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    };
 | 
					                    };
 | 
				
			||||||
                case "Items": {
 | 
					                case "Items": {
 | 
				
			||||||
 | 
					                    switch (typeName.substr(1).split("/")[3]) {
 | 
				
			||||||
 | 
					                        case "ShipDecos": {
 | 
				
			||||||
 | 
					                            const inventory = await getInventory(accountId);
 | 
				
			||||||
 | 
					                            const changes = [
 | 
				
			||||||
 | 
					                                {
 | 
				
			||||||
 | 
					                                    ItemType: typeName,
 | 
				
			||||||
 | 
					                                    ItemCount: quantity
 | 
				
			||||||
 | 
					                                } satisfies IMiscItem
 | 
				
			||||||
 | 
					                            ];
 | 
				
			||||||
 | 
					                            addShipDecorations(inventory, changes);
 | 
				
			||||||
 | 
					                            await inventory.save();
 | 
				
			||||||
 | 
					                            return {
 | 
				
			||||||
 | 
					                                InventoryChanges: {
 | 
				
			||||||
 | 
					                                    ShipDecorations: changes
 | 
				
			||||||
 | 
					                                }
 | 
				
			||||||
 | 
					                            };
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                        default: {
 | 
				
			||||||
                            const inventory = await getInventory(accountId);
 | 
					                            const inventory = await getInventory(accountId);
 | 
				
			||||||
                            const miscItemChanges = [
 | 
					                            const miscItemChanges = [
 | 
				
			||||||
                                {
 | 
					                                {
 | 
				
			||||||
@ -151,6 +186,8 @@ export const addItem = async (
 | 
				
			|||||||
                                }
 | 
					                                }
 | 
				
			||||||
                            };
 | 
					                            };
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                case "Recipes":
 | 
					                case "Recipes":
 | 
				
			||||||
                case "Consumables": {
 | 
					                case "Consumables": {
 | 
				
			||||||
                    // Blueprints for Ciphers, Antitoxins
 | 
					                    // Blueprints for Ciphers, Antitoxins
 | 
				
			||||||
@ -427,6 +464,21 @@ export const addMiscItems = (inventory: IInventoryDatabaseDocument, itemsArray:
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const addShipDecorations = (inventory: IInventoryDatabaseDocument, itemsArray: IConsumable[] | undefined) => {
 | 
				
			||||||
 | 
					    const { ShipDecorations } = inventory;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    itemsArray?.forEach(({ ItemCount, ItemType }) => {
 | 
				
			||||||
 | 
					        const itemIndex = ShipDecorations.findIndex(miscItem => miscItem.ItemType === ItemType);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (itemIndex !== -1) {
 | 
				
			||||||
 | 
					            ShipDecorations[itemIndex].ItemCount += ItemCount;
 | 
				
			||||||
 | 
					            inventory.markModified(`ShipDecorations.${itemIndex}.ItemCount`);
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            ShipDecorations.push({ ItemCount, ItemType });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const addConsumables = (inventory: IInventoryDatabaseDocument, itemsArray: IConsumable[] | undefined) => {
 | 
					export const addConsumables = (inventory: IInventoryDatabaseDocument, itemsArray: IConsumable[] | undefined) => {
 | 
				
			||||||
    const { Consumables } = inventory;
 | 
					    const { Consumables } = inventory;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user