feat: entratiLabConquestMode.php
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				Build / build (18) (pull_request) Successful in 40s
				
			
		
			
				
	
				Build / build (22) (push) Successful in 1m20s
				
			
		
			
				
	
				Build / build (18) (push) Successful in 41s
				
			
		
			
				
	
				Build / build (20) (push) Successful in 1m7s
				
			
		
			
				
	
				Build / build (20) (pull_request) Successful in 1m6s
				
			
		
			
				
	
				Build / build (22) (pull_request) Successful in 37s
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	Build / build (18) (pull_request) Successful in 40s
				
			Build / build (22) (push) Successful in 1m20s
				
			Build / build (18) (push) Successful in 41s
				
			Build / build (20) (push) Successful in 1m7s
				
			Build / build (20) (pull_request) Successful in 1m6s
				
			Build / build (22) (pull_request) Successful in 37s
				
			This commit is contained in:
		
							parent
							
								
									b8e3be5018
								
							
						
					
					
						commit
						4e011e1ed4
					
				
							
								
								
									
										61
									
								
								src/controllers/api/entratiLabConquestModeController.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								src/controllers/api/entratiLabConquestModeController.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,61 @@
 | 
			
		||||
import { toMongoDate } from "@/src/helpers/inventoryHelpers";
 | 
			
		||||
import { getJSONfromString } from "@/src/helpers/stringHelpers";
 | 
			
		||||
import { getInventory } from "@/src/services/inventoryService";
 | 
			
		||||
import { getAccountIdForRequest } from "@/src/services/loginService";
 | 
			
		||||
import { RequestHandler } from "express";
 | 
			
		||||
 | 
			
		||||
export const entratiLabConquestModeController: RequestHandler = async (req, res) => {
 | 
			
		||||
    const accountId = await getAccountIdForRequest(req);
 | 
			
		||||
    const inventory = await getInventory(
 | 
			
		||||
        accountId,
 | 
			
		||||
        "EntratiVaultCountResetDate EntratiVaultCountLastPeriod EntratiLabConquestUnlocked EchoesHexConquestUnlocked EchoesHexConquestActiveFrameVariants EchoesHexConquestActiveStickers EntratiLabConquestActiveFrameVariants EntratiLabConquestCacheScoreMission EchoesHexConquestCacheScoreMission"
 | 
			
		||||
    );
 | 
			
		||||
    const body = getJSONfromString<IEntratiLabConquestModeRequest>(String(req.body));
 | 
			
		||||
    if (body.BuyMode) {
 | 
			
		||||
        if (!inventory.EntratiVaultCountResetDate || Date.now() >= inventory.EntratiVaultCountResetDate.getTime()) {
 | 
			
		||||
            const thisWeek = Math.trunc(Date.now() / 604800000) * 604800000;
 | 
			
		||||
            const nextWeek = thisWeek + 604800000;
 | 
			
		||||
            inventory.EntratiVaultCountLastPeriod = 0;
 | 
			
		||||
            inventory.EntratiVaultCountResetDate = new Date(nextWeek);
 | 
			
		||||
            if (inventory.EntratiLabConquestUnlocked) {
 | 
			
		||||
                inventory.EntratiLabConquestUnlocked = 0;
 | 
			
		||||
            }
 | 
			
		||||
            if (inventory.EchoesHexConquestUnlocked) {
 | 
			
		||||
                inventory.EchoesHexConquestUnlocked = 0;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        inventory.EntratiVaultCountLastPeriod! += 2;
 | 
			
		||||
        if (body.IsEchoesDeepArchemedea) {
 | 
			
		||||
            inventory.EchoesHexConquestUnlocked = 1;
 | 
			
		||||
        } else {
 | 
			
		||||
            inventory.EntratiLabConquestUnlocked = 1;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    if (body.IsEchoesDeepArchemedea) {
 | 
			
		||||
        inventory.EchoesHexConquestActiveFrameVariants = body.EchoesHexConquestActiveFrameVariants!;
 | 
			
		||||
        inventory.EchoesHexConquestActiveStickers = body.EchoesHexConquestActiveStickers!;
 | 
			
		||||
    } else {
 | 
			
		||||
        inventory.EntratiLabConquestActiveFrameVariants = body.EntratiLabConquestActiveFrameVariants!;
 | 
			
		||||
    }
 | 
			
		||||
    await inventory.save();
 | 
			
		||||
    res.json({
 | 
			
		||||
        EntratiVaultCountResetDate: inventory.EntratiVaultCountResetDate
 | 
			
		||||
            ? toMongoDate(inventory.EntratiVaultCountResetDate)
 | 
			
		||||
            : undefined,
 | 
			
		||||
        EntratiVaultCountLastPeriod: inventory.EntratiVaultCountLastPeriod,
 | 
			
		||||
        EntratiLabConquestUnlocked: inventory.EntratiLabConquestUnlocked,
 | 
			
		||||
        EntratiLabConquestCacheScoreMission: inventory.EntratiLabConquestCacheScoreMission,
 | 
			
		||||
        EchoesHexConquestUnlocked: inventory.EchoesHexConquestUnlocked,
 | 
			
		||||
        EchoesHexConquestCacheScoreMission: inventory.EchoesHexConquestCacheScoreMission
 | 
			
		||||
    });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
interface IEntratiLabConquestModeRequest {
 | 
			
		||||
    BuyMode?: number;
 | 
			
		||||
    IsEchoesDeepArchemedea?: number;
 | 
			
		||||
    EntratiLabConquestUnlocked?: number;
 | 
			
		||||
    EntratiLabConquestActiveFrameVariants?: string[];
 | 
			
		||||
    EchoesHexConquestUnlocked?: number;
 | 
			
		||||
    EchoesHexConquestActiveFrameVariants?: string[];
 | 
			
		||||
    EchoesHexConquestActiveStickers?: string[];
 | 
			
		||||
}
 | 
			
		||||
@ -1463,7 +1463,20 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
 | 
			
		||||
        DialogueHistory: dialogueHistorySchema,
 | 
			
		||||
        CalendarProgress: calenderProgressSchema,
 | 
			
		||||
 | 
			
		||||
        SongChallenges: { type: [songChallengeSchema], default: undefined }
 | 
			
		||||
        SongChallenges: { type: [songChallengeSchema], default: undefined },
 | 
			
		||||
 | 
			
		||||
        // Netracells + Deep Archimedea
 | 
			
		||||
        EntratiVaultCountLastPeriod: { type: Number, default: undefined },
 | 
			
		||||
        EntratiVaultCountResetDate: { type: Date, default: undefined },
 | 
			
		||||
        EntratiLabConquestUnlocked: { type: Number, default: undefined },
 | 
			
		||||
        EntratiLabConquestHardModeStatus: { type: Number, default: undefined },
 | 
			
		||||
        EntratiLabConquestCacheScoreMission: { type: Number, default: undefined },
 | 
			
		||||
        EntratiLabConquestActiveFrameVariants: { type: [String], default: undefined },
 | 
			
		||||
        EchoesHexConquestUnlocked: { type: Number, default: undefined },
 | 
			
		||||
        EchoesHexConquestHardModeStatus: { type: Number, default: undefined },
 | 
			
		||||
        EchoesHexConquestCacheScoreMission: { type: Number, default: undefined },
 | 
			
		||||
        EchoesHexConquestActiveFrameVariants: { type: [String], default: undefined },
 | 
			
		||||
        EchoesHexConquestActiveStickers: { type: [String], default: undefined }
 | 
			
		||||
    },
 | 
			
		||||
    { timestamps: { createdAt: "Created", updatedAt: false } }
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
@ -30,6 +30,7 @@ import { dojoComponentRushController } from "@/src/controllers/api/dojoComponent
 | 
			
		||||
import { dojoController } from "@/src/controllers/api/dojoController";
 | 
			
		||||
import { dronesController } from "@/src/controllers/api/dronesController";
 | 
			
		||||
import { endlessXpController } from "@/src/controllers/api/endlessXpController";
 | 
			
		||||
import { entratiLabConquestModeController } from "@/src/controllers/api/entratiLabConquestModeController";
 | 
			
		||||
import { evolveWeaponController } from "@/src/controllers/api/evolveWeaponController";
 | 
			
		||||
import { findSessionsController } from "@/src/controllers/api/findSessionsController";
 | 
			
		||||
import { fishmongerController } from "@/src/controllers/api/fishmongerController";
 | 
			
		||||
@ -182,6 +183,7 @@ apiRouter.post("/destroyDojoDeco.php", destroyDojoDecoController);
 | 
			
		||||
apiRouter.post("/dojoComponentRush.php", dojoComponentRushController);
 | 
			
		||||
apiRouter.post("/drones.php", dronesController);
 | 
			
		||||
apiRouter.post("/endlessXp.php", endlessXpController);
 | 
			
		||||
apiRouter.post("/entratiLabConquestMode.php", entratiLabConquestModeController);
 | 
			
		||||
apiRouter.post("/evolveWeapon.php", evolveWeaponController);
 | 
			
		||||
apiRouter.post("/findSessions.php", findSessionsController);
 | 
			
		||||
apiRouter.post("/fishmonger.php", fishmongerController);
 | 
			
		||||
 | 
			
		||||
@ -335,6 +335,17 @@ export interface IInventoryClient extends IDailyAffiliations, InventoryClientEqu
 | 
			
		||||
    DialogueHistory?: IDialogueHistoryClient;
 | 
			
		||||
    CalendarProgress: ICalendarProgress;
 | 
			
		||||
    SongChallenges?: ISongChallenge[];
 | 
			
		||||
    EntratiVaultCountLastPeriod?: number;
 | 
			
		||||
    EntratiVaultCountResetDate?: Date;
 | 
			
		||||
    EntratiLabConquestUnlocked?: number;
 | 
			
		||||
    EntratiLabConquestHardModeStatus?: number;
 | 
			
		||||
    EntratiLabConquestCacheScoreMission?: number;
 | 
			
		||||
    EntratiLabConquestActiveFrameVariants?: string[];
 | 
			
		||||
    EchoesHexConquestUnlocked?: number;
 | 
			
		||||
    EchoesHexConquestHardModeStatus?: number;
 | 
			
		||||
    EchoesHexConquestCacheScoreMission?: number;
 | 
			
		||||
    EchoesHexConquestActiveFrameVariants?: string[];
 | 
			
		||||
    EchoesHexConquestActiveStickers?: string[];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface IAffiliation {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user