feat: additional operator appearance slots (#2712)
Closes #2710 Reviewed-on: OpenWF/SpaceNinjaServer#2712 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
							
								
									dc401de1e9
								
							
						
					
					
						commit
						4b2b184b8f
					
				
							
								
								
									
										16
									
								
								src/controllers/api/upgradeOperatorController.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/controllers/api/upgradeOperatorController.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					import { getInventory, updateCurrency } from "../../services/inventoryService.ts";
 | 
				
			||||||
 | 
					import { getAccountIdForRequest } from "../../services/loginService.ts";
 | 
				
			||||||
 | 
					import type { RequestHandler } from "express";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const upgradeOperatorController: RequestHandler = async (req, res) => {
 | 
				
			||||||
 | 
					    const accountId = await getAccountIdForRequest(req);
 | 
				
			||||||
 | 
					    const inventory = await getInventory(
 | 
				
			||||||
 | 
					        accountId,
 | 
				
			||||||
 | 
					        "OperatorCustomizationSlotPurchases PremiumCredits PremiumCreditsFree"
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					    inventory.OperatorCustomizationSlotPurchases ??= 0;
 | 
				
			||||||
 | 
					    inventory.OperatorCustomizationSlotPurchases += 1;
 | 
				
			||||||
 | 
					    const inventoryChanges = updateCurrency(inventory, 10, true);
 | 
				
			||||||
 | 
					    await inventory.save();
 | 
				
			||||||
 | 
					    res.json({ InventoryChanges: inventoryChanges });
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@ -1564,6 +1564,7 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
 | 
				
			|||||||
        OperatorLoadOuts: [operatorConfigSchema],
 | 
					        OperatorLoadOuts: [operatorConfigSchema],
 | 
				
			||||||
        //Drifter
 | 
					        //Drifter
 | 
				
			||||||
        AdultOperatorLoadOuts: [operatorConfigSchema],
 | 
					        AdultOperatorLoadOuts: [operatorConfigSchema],
 | 
				
			||||||
 | 
					        OperatorCustomizationSlotPurchases: Number,
 | 
				
			||||||
        // Kahl
 | 
					        // Kahl
 | 
				
			||||||
        KahlLoadOuts: [operatorConfigSchema],
 | 
					        KahlLoadOuts: [operatorConfigSchema],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -162,6 +162,7 @@ import { updateQuestController } from "../controllers/api/updateQuestController.
 | 
				
			|||||||
import { updateSessionGetController, updateSessionPostController } from "../controllers/api/updateSessionController.ts";
 | 
					import { updateSessionGetController, updateSessionPostController } from "../controllers/api/updateSessionController.ts";
 | 
				
			||||||
import { updateSongChallengeController } from "../controllers/api/updateSongChallengeController.ts";
 | 
					import { updateSongChallengeController } from "../controllers/api/updateSongChallengeController.ts";
 | 
				
			||||||
import { updateThemeController } from "../controllers/api/updateThemeController.ts";
 | 
					import { updateThemeController } from "../controllers/api/updateThemeController.ts";
 | 
				
			||||||
 | 
					import { upgradeOperatorController } from "../controllers/api/upgradeOperatorController.ts";
 | 
				
			||||||
import { upgradesController } from "../controllers/api/upgradesController.ts";
 | 
					import { upgradesController } from "../controllers/api/upgradesController.ts";
 | 
				
			||||||
import { valenceSwapController } from "../controllers/api/valenceSwapController.ts";
 | 
					import { valenceSwapController } from "../controllers/api/valenceSwapController.ts";
 | 
				
			||||||
import { wishlistController } from "../controllers/api/wishlistController.ts";
 | 
					import { wishlistController } from "../controllers/api/wishlistController.ts";
 | 
				
			||||||
@ -229,6 +230,7 @@ apiRouter.get("/startLibraryPersonalTarget.php", startLibraryPersonalTargetContr
 | 
				
			|||||||
apiRouter.get("/surveys.php", surveysController);
 | 
					apiRouter.get("/surveys.php", surveysController);
 | 
				
			||||||
apiRouter.get("/trading.php", tradingController);
 | 
					apiRouter.get("/trading.php", tradingController);
 | 
				
			||||||
apiRouter.get("/updateSession.php", updateSessionGetController);
 | 
					apiRouter.get("/updateSession.php", updateSessionGetController);
 | 
				
			||||||
 | 
					apiRouter.get("/upgradeOperator.php", upgradeOperatorController);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// post
 | 
					// post
 | 
				
			||||||
apiRouter.post("/abortDojoComponent.php", abortDojoComponentController);
 | 
					apiRouter.post("/abortDojoComponent.php", abortDojoComponentController);
 | 
				
			||||||
 | 
				
			|||||||
@ -374,6 +374,7 @@ export interface IInventoryClient extends IDailyAffiliations, InventoryClientEqu
 | 
				
			|||||||
    CrewMembers: ICrewMemberClient[];
 | 
					    CrewMembers: ICrewMemberClient[];
 | 
				
			||||||
    LotusCustomization?: ILotusCustomization;
 | 
					    LotusCustomization?: ILotusCustomization;
 | 
				
			||||||
    UseAdultOperatorLoadout?: boolean;
 | 
					    UseAdultOperatorLoadout?: boolean;
 | 
				
			||||||
 | 
					    OperatorCustomizationSlotPurchases?: number;
 | 
				
			||||||
    NemesisAbandonedRewards: string[];
 | 
					    NemesisAbandonedRewards: string[];
 | 
				
			||||||
    LastInventorySync?: IOid;
 | 
					    LastInventorySync?: IOid;
 | 
				
			||||||
    NextRefill?: IMongoDate;
 | 
					    NextRefill?: IMongoDate;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user