forked from OpenWF/SpaceNinjaServer
		
	feat: echoes of umbra (#2177)
Having this item in the inventory unlocks the helminth option which is helpfully called "remove cyst" to install and uninstall it on a frame. Reviewed-on: OpenWF/SpaceNinjaServer#2177 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
							
								
									01e490768c
								
							
						
					
					
						commit
						6c2055a246
					
				
							
								
								
									
										27
									
								
								src/controllers/api/umbraController.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								src/controllers/api/umbraController.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					import { fromMongoDate, fromOid } from "@/src/helpers/inventoryHelpers";
 | 
				
			||||||
 | 
					import { getJSONfromString } from "@/src/helpers/stringHelpers";
 | 
				
			||||||
 | 
					import { addMiscItem, getInventory } from "@/src/services/inventoryService";
 | 
				
			||||||
 | 
					import { getAccountIdForRequest } from "@/src/services/loginService";
 | 
				
			||||||
 | 
					import { IEquipmentClient } from "@/src/types/inventoryTypes/commonInventoryTypes";
 | 
				
			||||||
 | 
					import { RequestHandler } from "express";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const umbraController: RequestHandler = async (req, res) => {
 | 
				
			||||||
 | 
					    const accountId = await getAccountIdForRequest(req);
 | 
				
			||||||
 | 
					    const inventory = await getInventory(accountId, "Suits MiscItems");
 | 
				
			||||||
 | 
					    const payload = getJSONfromString<IUmbraRequest>(String(req.body));
 | 
				
			||||||
 | 
					    for (const clientSuit of payload.Suits) {
 | 
				
			||||||
 | 
					        const dbSuit = inventory.Suits.id(fromOid(clientSuit.ItemId))!;
 | 
				
			||||||
 | 
					        if (clientSuit.UmbraDate) {
 | 
				
			||||||
 | 
					            addMiscItem(inventory, "/Lotus/Types/Items/MiscItems/UmbraEchoes", -1);
 | 
				
			||||||
 | 
					            dbSuit.UmbraDate = fromMongoDate(clientSuit.UmbraDate);
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            dbSuit.UmbraDate = undefined;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    await inventory.save();
 | 
				
			||||||
 | 
					    res.end();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					interface IUmbraRequest {
 | 
				
			||||||
 | 
					    Suits: IEquipmentClient[];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -148,6 +148,7 @@ import { syndicateStandingBonusController } from "@/src/controllers/api/syndicat
 | 
				
			|||||||
import { tauntHistoryController } from "@/src/controllers/api/tauntHistoryController";
 | 
					import { tauntHistoryController } from "@/src/controllers/api/tauntHistoryController";
 | 
				
			||||||
import { tradingController } from "@/src/controllers/api/tradingController";
 | 
					import { tradingController } from "@/src/controllers/api/tradingController";
 | 
				
			||||||
import { trainingResultController } from "@/src/controllers/api/trainingResultController";
 | 
					import { trainingResultController } from "@/src/controllers/api/trainingResultController";
 | 
				
			||||||
 | 
					import { umbraController } from "@/src/controllers/api/umbraController";
 | 
				
			||||||
import { unlockShipFeatureController } from "@/src/controllers/api/unlockShipFeatureController";
 | 
					import { unlockShipFeatureController } from "@/src/controllers/api/unlockShipFeatureController";
 | 
				
			||||||
import { updateAlignmentController } from "@/src/controllers/api/updateAlignmentController";
 | 
					import { updateAlignmentController } from "@/src/controllers/api/updateAlignmentController";
 | 
				
			||||||
import { updateChallengeProgressController } from "@/src/controllers/api/updateChallengeProgressController";
 | 
					import { updateChallengeProgressController } from "@/src/controllers/api/updateChallengeProgressController";
 | 
				
			||||||
@ -329,6 +330,7 @@ apiRouter.post("/syndicateSacrifice.php", syndicateSacrificeController);
 | 
				
			|||||||
apiRouter.post("/syndicateStandingBonus.php", syndicateStandingBonusController);
 | 
					apiRouter.post("/syndicateStandingBonus.php", syndicateStandingBonusController);
 | 
				
			||||||
apiRouter.post("/tauntHistory.php", tauntHistoryController);
 | 
					apiRouter.post("/tauntHistory.php", tauntHistoryController);
 | 
				
			||||||
apiRouter.post("/trainingResult.php", trainingResultController);
 | 
					apiRouter.post("/trainingResult.php", trainingResultController);
 | 
				
			||||||
 | 
					apiRouter.post("/umbra.php", umbraController);
 | 
				
			||||||
apiRouter.post("/unlockShipFeature.php", unlockShipFeatureController);
 | 
					apiRouter.post("/unlockShipFeature.php", unlockShipFeatureController);
 | 
				
			||||||
apiRouter.post("/updateAlignment.php", updateAlignmentController);
 | 
					apiRouter.post("/updateAlignment.php", updateAlignmentController);
 | 
				
			||||||
apiRouter.post("/updateChallengeProgress.php", updateChallengeProgressController);
 | 
					apiRouter.post("/updateChallengeProgress.php", updateChallengeProgressController);
 | 
				
			||||||
 | 
				
			|||||||
@ -1580,7 +1580,7 @@ export const addMiscItem = (
 | 
				
			|||||||
    inventory: TInventoryDatabaseDocument,
 | 
					    inventory: TInventoryDatabaseDocument,
 | 
				
			||||||
    type: string,
 | 
					    type: string,
 | 
				
			||||||
    count: number,
 | 
					    count: number,
 | 
				
			||||||
    inventoryChanges: IInventoryChanges
 | 
					    inventoryChanges: IInventoryChanges = {}
 | 
				
			||||||
): void => {
 | 
					): void => {
 | 
				
			||||||
    const miscItemChanges: IMiscItem[] = [
 | 
					    const miscItemChanges: IMiscItem[] = [
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user