feat: daily synthesis #1014
							
								
								
									
										31
									
								
								src/controllers/api/claimLibraryDailyTaskRewardController.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								src/controllers/api/claimLibraryDailyTaskRewardController.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,31 @@
 | 
			
		||||
import { getInventory } from "@/src/services/inventoryService";
 | 
			
		||||
import { getAccountIdForRequest } from "@/src/services/loginService";
 | 
			
		||||
import { RequestHandler } from "express";
 | 
			
		||||
 | 
			
		||||
export const claimLibraryDailyTaskRewardController: RequestHandler = async (req, res) => {
 | 
			
		||||
    const accountId = await getAccountIdForRequest(req);
 | 
			
		||||
    const inventory = await getInventory(accountId);
 | 
			
		||||
 | 
			
		||||
    const rewardQuantity = inventory.LibraryActiveDailyTaskInfo!.RewardQuantity;
 | 
			
		||||
    const rewardStanding = inventory.LibraryActiveDailyTaskInfo!.RewardStanding;
 | 
			
		||||
    inventory.LibraryActiveDailyTaskInfo = undefined;
 | 
			
		||||
    inventory.LibraryAvailableDailyTaskInfo = undefined;
 | 
			
		||||
 | 
			
		||||
    let syndicate = inventory.Affiliations.find(x => x.Tag == "LibrarySyndicate");
 | 
			
		||||
    if (!syndicate) {
 | 
			
		||||
        syndicate = inventory.Affiliations[inventory.Affiliations.push({ Tag: "LibrarySyndicate", Standing: 0 }) - 1];
 | 
			
		||||
    }
 | 
			
		||||
    syndicate.Standing += rewardStanding;
 | 
			
		||||
 | 
			
		||||
    inventory.FusionPoints += 80 * rewardQuantity;
 | 
			
		||||
    await inventory.save();
 | 
			
		||||
 | 
			
		||||
    res.json({
 | 
			
		||||
        RewardItem: "/Lotus/StoreItems/Upgrades/Mods/FusionBundles/RareFusionBundle",
 | 
			
		||||
        RewardQuantity: rewardQuantity,
 | 
			
		||||
        StandingAwarded: rewardStanding,
 | 
			
		||||
        InventoryChanges: {
 | 
			
		||||
            FusionPoints: 80 * rewardQuantity
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
};
 | 
			
		||||
@ -955,6 +955,7 @@ const libraryDailyTaskInfoSchema = new Schema<ILibraryDailyTaskInfo>(
 | 
			
		||||
        EnemyTypes: [String],
 | 
			
		||||
        EnemyLocTag: String,
 | 
			
		||||
        EnemyIcon: String,
 | 
			
		||||
        Scans: Number,
 | 
			
		||||
        ScansRequired: Number,
 | 
			
		||||
        RewardStoreItem: String,
 | 
			
		||||
        RewardQuantity: Number,
 | 
			
		||||
 | 
			
		||||
@ -8,6 +8,7 @@ import { artifactsController } from "@/src/controllers/api/artifactsController";
 | 
			
		||||
import { changeDojoRootController } from "@/src/controllers/api/changeDojoRootController";
 | 
			
		||||
import { checkDailyMissionBonusController } from "@/src/controllers/api/checkDailyMissionBonusController";
 | 
			
		||||
import { claimCompletedRecipeController } from "@/src/controllers/api/claimCompletedRecipeController";
 | 
			
		||||
import { claimLibraryDailyTaskRewardController } from "@/src/controllers/api/claimLibraryDailyTaskRewardController";
 | 
			
		||||
import { clearDialogueHistoryController } from "@/src/controllers/api/clearDialogueHistoryController";
 | 
			
		||||
import { completeRandomModChallengeController } from "@/src/controllers/api/completeRandomModChallengeController";
 | 
			
		||||
import { createGuildController } from "@/src/controllers/api/createGuildController";
 | 
			
		||||
@ -97,6 +98,7 @@ const apiRouter = express.Router();
 | 
			
		||||
// get
 | 
			
		||||
apiRouter.get("/abandonLibraryDailyTask.php", abandonLibraryDailyTaskController);
 | 
			
		||||
apiRouter.get("/checkDailyMissionBonus.php", checkDailyMissionBonusController);
 | 
			
		||||
apiRouter.get("/claimLibraryDailyTaskReward.php", claimLibraryDailyTaskRewardController);
 | 
			
		||||
apiRouter.get("/credits.php", creditsController);
 | 
			
		||||
apiRouter.get("/deleteSession.php", deleteSessionController);
 | 
			
		||||
apiRouter.get("/dojo", dojoController);
 | 
			
		||||
 | 
			
		||||
@ -320,7 +320,7 @@ export interface IInventoryClient extends IDailyAffiliations, InventoryClientEqu
 | 
			
		||||
    LibraryPersonalTarget: string;
 | 
			
		||||
    LibraryPersonalProgress: ILibraryPersonalProgress[];
 | 
			
		||||
    CollectibleSeries: ICollectibleSery[];
 | 
			
		||||
    LibraryAvailableDailyTaskInfo: ILibraryDailyTaskInfo;
 | 
			
		||||
    LibraryAvailableDailyTaskInfo?: ILibraryDailyTaskInfo;
 | 
			
		||||
    LibraryActiveDailyTaskInfo?: ILibraryDailyTaskInfo;
 | 
			
		||||
    HasResetAccount: boolean;
 | 
			
		||||
    PendingCoupon?: IPendingCouponClient;
 | 
			
		||||
@ -663,6 +663,7 @@ export interface ILibraryDailyTaskInfo {
 | 
			
		||||
    EnemyTypes: string[];
 | 
			
		||||
    EnemyLocTag: string;
 | 
			
		||||
    EnemyIcon: string;
 | 
			
		||||
    Scans?: number;
 | 
			
		||||
    ScansRequired: number;
 | 
			
		||||
    RewardStoreItem: string;
 | 
			
		||||
    RewardQuantity: number;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user