feat: nightwave rank up rewards
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				Build / build (22) (push) Failing after 1m7s
				
			
		
			
				
	
				Build / build (18) (push) Failing after 57s
				
			
		
			
				
	
				Build / build (20) (push) Failing after 1m24s
				
			
		
			
				
	
				Build / build (20) (pull_request) Failing after 40s
				
			
		
			
				
	
				Build / build (18) (pull_request) Failing after 1m11s
				
			
		
			
				
	
				Build / build (22) (pull_request) Failing after 1m18s
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	Build / build (22) (push) Failing after 1m7s
				
			Build / build (18) (push) Failing after 57s
				
			Build / build (20) (push) Failing after 1m24s
				
			Build / build (20) (pull_request) Failing after 40s
				
			Build / build (18) (pull_request) Failing after 1m11s
				
			Build / build (22) (pull_request) Failing after 1m18s
				
			This commit is contained in:
		
							parent
							
								
									2ec2b0278a
								
							
						
					
					
						commit
						00fdb8e5e1
					
				
							
								
								
									
										6
									
								
								src/controllers/api/clearNewEpisodeRewardController.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								src/controllers/api/clearNewEpisodeRewardController.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | ||||
| import { RequestHandler } from "express"; | ||||
| 
 | ||||
| // example req.body: {"NewEpisodeReward":true,"crossPlaySetting":"ENABLED"}
 | ||||
| export const clearNewEpisodeRewardController: RequestHandler = (_req, res) => { | ||||
|     res.status(200).end(); | ||||
| }; | ||||
| @ -1,10 +1,11 @@ | ||||
| import { getJSONfromString } from "@/src/helpers/stringHelpers"; | ||||
| import { RequestHandler } from "express"; | ||||
| import { getAccountIdForRequest } from "@/src/services/loginService"; | ||||
| import { ExportSyndicates, ISyndicateSacrifice } from "warframe-public-export-plus"; | ||||
| import { ExportNightwave, ExportSyndicates, ISyndicateSacrifice } from "warframe-public-export-plus"; | ||||
| import { handleStoreItemAcquisition } from "@/src/services/purchaseService"; | ||||
| import { addMiscItems, combineInventoryChanges, getInventory, updateCurrency } from "@/src/services/inventoryService"; | ||||
| import { addItem, addMiscItems, combineInventoryChanges, getInventory, updateCurrency } from "@/src/services/inventoryService"; | ||||
| import { IInventoryChanges } from "@/src/types/purchaseTypes"; | ||||
| import { fromStoreItem, isStoreItem } from "@/src/services/itemDataService"; | ||||
| 
 | ||||
| export const syndicateSacrificeController: RequestHandler = async (request, response) => { | ||||
|     const accountId = await getAccountIdForRequest(request); | ||||
| @ -22,7 +23,7 @@ export const syndicateSacrificeController: RequestHandler = async (request, resp | ||||
|         InventoryChanges: {}, | ||||
|         Level: data.SacrificeLevel, | ||||
|         LevelIncrease: level <= 0 ? 1 : level, | ||||
|         NewEpisodeReward: syndicate.Tag == "RadioLegionIntermission9Syndicate" | ||||
|         NewEpisodeReward: false | ||||
|     }; | ||||
| 
 | ||||
|     const manifest = ExportSyndicates[data.AffiliationTag]; | ||||
| @ -64,6 +65,19 @@ export const syndicateSacrificeController: RequestHandler = async (request, resp | ||||
|         ); | ||||
|     } | ||||
| 
 | ||||
|     if (data.AffiliationTag == ExportNightwave.affiliationTag) { | ||||
|         const index = syndicate.Title - 1; | ||||
|         if (index < ExportNightwave.rewards.length) { | ||||
|             res.NewEpisodeReward = true; | ||||
|             const reward = ExportNightwave.rewards[index]; | ||||
|             let rewardType = reward.uniqueName; | ||||
|             if (isStoreItem(rewardType)) { | ||||
|                 rewardType = fromStoreItem(rewardType); | ||||
|             } | ||||
|             combineInventoryChanges(res.InventoryChanges, await addItem(inventory, rewardType, reward.itemCount ?? 1)); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     await inventory.save(); | ||||
| 
 | ||||
|     response.json(res); | ||||
|  | ||||
| @ -15,6 +15,7 @@ import { checkDailyMissionBonusController } from "@/src/controllers/api/checkDai | ||||
| import { claimCompletedRecipeController } from "@/src/controllers/api/claimCompletedRecipeController"; | ||||
| import { claimLibraryDailyTaskRewardController } from "@/src/controllers/api/claimLibraryDailyTaskRewardController"; | ||||
| import { clearDialogueHistoryController } from "@/src/controllers/api/clearDialogueHistoryController"; | ||||
| import { clearNewEpisodeRewardController } from "@/src/controllers/api/clearNewEpisodeRewardController"; | ||||
| import { completeRandomModChallengeController } from "@/src/controllers/api/completeRandomModChallengeController"; | ||||
| import { confirmGuildInvitationController } from "@/src/controllers/api/confirmGuildInvitationController"; | ||||
| import { contributeGuildClassController } from "@/src/controllers/api/contributeGuildClassController"; | ||||
| @ -175,6 +176,7 @@ apiRouter.post("/artifactTransmutation.php", artifactTransmutationController); | ||||
| apiRouter.post("/changeDojoRoot.php", changeDojoRootController); | ||||
| apiRouter.post("/claimCompletedRecipe.php", claimCompletedRecipeController); | ||||
| apiRouter.post("/clearDialogueHistory.php", clearDialogueHistoryController); | ||||
| apiRouter.post("/clearNewEpisodeReward.php", clearNewEpisodeRewardController); | ||||
| apiRouter.post("/completeRandomModChallenge.php", completeRandomModChallengeController); | ||||
| apiRouter.post("/contributeGuildClass.php", contributeGuildClassController); | ||||
| apiRouter.post("/contributeToDojoComponent.php", contributeToDojoComponentController); | ||||
|  | ||||
| @ -250,6 +250,10 @@ export const convertInboxMessage = (message: IInboxMessage): IMessage => { | ||||
|     } satisfies IMessage; | ||||
| }; | ||||
| 
 | ||||
| export const isStoreItem = (type: string): boolean => { | ||||
|     return type.startsWith("/Lotus/StoreItems/"); | ||||
| } | ||||
| 
 | ||||
| export const toStoreItem = (type: string): string => { | ||||
|     return "/Lotus/StoreItems/" + type.substring("/Lotus/".length); | ||||
| }; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user