forked from OpenWF/SpaceNinjaServer
		
	feat: cancel personal tech project (#1679)
Closes #1665 Reviewed-on: OpenWF/SpaceNinjaServer#1679 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									16e850e7ee
								
							
						
					
					
						commit
						ed217bae33
					
				@ -28,7 +28,7 @@ import { IInventoryChanges } from "@/src/types/purchaseTypes";
 | 
				
			|||||||
import { config } from "@/src/services/configService";
 | 
					import { config } from "@/src/services/configService";
 | 
				
			||||||
import { GuildPermission, ITechProjectClient } from "@/src/types/guildTypes";
 | 
					import { GuildPermission, ITechProjectClient } from "@/src/types/guildTypes";
 | 
				
			||||||
import { GuildMember } from "@/src/models/guildModel";
 | 
					import { GuildMember } from "@/src/models/guildModel";
 | 
				
			||||||
import { toMongoDate } from "@/src/helpers/inventoryHelpers";
 | 
					import { toMongoDate, toOid } from "@/src/helpers/inventoryHelpers";
 | 
				
			||||||
import { logger } from "@/src/utils/logger";
 | 
					import { logger } from "@/src/utils/logger";
 | 
				
			||||||
import { TInventoryDatabaseDocument } from "@/src/models/inventoryModels/inventoryModel";
 | 
					import { TInventoryDatabaseDocument } from "@/src/models/inventoryModels/inventoryModel";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -305,6 +305,38 @@ export const guildTechController: RequestHandler = async (req, res) => {
 | 
				
			|||||||
        guild.ActiveDojoColorResearch = data.RecipeType;
 | 
					        guild.ActiveDojoColorResearch = data.RecipeType;
 | 
				
			||||||
        await guild.save();
 | 
					        await guild.save();
 | 
				
			||||||
        res.end();
 | 
					        res.end();
 | 
				
			||||||
 | 
					    } else if (data.Action == "Cancel" && data.CategoryItemId) {
 | 
				
			||||||
 | 
					        const personalTechProjectIndex = inventory.PersonalTechProjects.findIndex(x =>
 | 
				
			||||||
 | 
					            x.CategoryItemId?.equals(data.CategoryItemId)
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					        const personalTechProject = inventory.PersonalTechProjects[personalTechProjectIndex];
 | 
				
			||||||
 | 
					        inventory.PersonalTechProjects.splice(personalTechProjectIndex, 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        const meta = ExportDojoRecipes.research[personalTechProject.ItemType];
 | 
				
			||||||
 | 
					        const contributedCredits = meta.price - personalTechProject.ReqCredits;
 | 
				
			||||||
 | 
					        const inventoryChanges = updateCurrency(inventory, contributedCredits * -1, false);
 | 
				
			||||||
 | 
					        inventoryChanges.MiscItems = [];
 | 
				
			||||||
 | 
					        for (const ingredient of meta.ingredients) {
 | 
				
			||||||
 | 
					            const reqItem = personalTechProject.ReqItems.find(x => x.ItemType == ingredient.ItemType);
 | 
				
			||||||
 | 
					            if (reqItem) {
 | 
				
			||||||
 | 
					                const contributedItems = ingredient.ItemCount - reqItem.ItemCount;
 | 
				
			||||||
 | 
					                inventoryChanges.MiscItems.push({
 | 
				
			||||||
 | 
					                    ItemType: ingredient.ItemType,
 | 
				
			||||||
 | 
					                    ItemCount: contributedItems
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        addMiscItems(inventory, inventoryChanges.MiscItems);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        await inventory.save();
 | 
				
			||||||
 | 
					        res.json({
 | 
				
			||||||
 | 
					            action: "Cancel",
 | 
				
			||||||
 | 
					            isPersonal: true,
 | 
				
			||||||
 | 
					            inventoryChanges: inventoryChanges,
 | 
				
			||||||
 | 
					            personalTech: {
 | 
				
			||||||
 | 
					                ItemId: toOid(personalTechProject._id)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
    } else if (data.Action == "Rush" && data.CategoryItemId) {
 | 
					    } else if (data.Action == "Rush" && data.CategoryItemId) {
 | 
				
			||||||
        const inventoryChanges: IInventoryChanges = {
 | 
					        const inventoryChanges: IInventoryChanges = {
 | 
				
			||||||
            ...updateCurrency(inventory, 20, true),
 | 
					            ...updateCurrency(inventory, 20, true),
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user