From aaa985e1ae16a357930a8bfcf91100f02de304ab Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Tue, 22 Apr 2025 21:33:11 +0200 Subject: [PATCH] feat: conquest progression --- .../api/missionInventoryUpdateController.ts | 10 ++++++++-- src/services/missionInventoryUpdateService.ts | 9 +-------- src/types/missionTypes.ts | 19 +++++++++++++++++++ src/types/requestTypes.ts | 1 + 4 files changed, 29 insertions(+), 10 deletions(-) diff --git a/src/controllers/api/missionInventoryUpdateController.ts b/src/controllers/api/missionInventoryUpdateController.ts index ead3b56e..d8bf8ac9 100644 --- a/src/controllers/api/missionInventoryUpdateController.ts +++ b/src/controllers/api/missionInventoryUpdateController.ts @@ -6,6 +6,7 @@ import { addMissionInventoryUpdates, addMissionRewards } from "@/src/services/mi import { getInventory } from "@/src/services/inventoryService"; import { getInventoryResponse } from "./inventoryController"; import { logger } from "@/src/utils/logger"; +import { IMissionInventoryUpdateResponse } from "@/src/types/missionTypes"; /* **** INPUT **** @@ -78,7 +79,7 @@ export const missionInventoryUpdateController: RequestHandler = async (req, res) const inventoryResponse = await getInventoryResponse(inventory, true); //TODO: figure out when to send inventory. it is needed for many cases. - res.json({ + const response: IMissionInventoryUpdateResponse = { InventoryJson: JSON.stringify(inventoryResponse), InventoryChanges: inventoryChanges, MissionRewards, @@ -87,7 +88,12 @@ export const missionInventoryUpdateController: RequestHandler = async (req, res) //FusionPoints: inventoryChanges?.FusionPoints, // This in combination with InventoryJson or InventoryChanges seems to just double the number of endo shown, so unsure when this is needed. SyndicateXPItemReward, AffiliationMods - }); + }; + if (missionReport.ConquestMissionsCompleted !== undefined) { + response.ConquestCompletedMissionsCount = + missionReport.ConquestMissionsCompleted == 2 ? 0 : missionReport.ConquestMissionsCompleted + 1; + } + res.json(response); }; /* diff --git a/src/services/missionInventoryUpdateService.ts b/src/services/missionInventoryUpdateService.ts index 46d039c1..0b6cb5ff 100644 --- a/src/services/missionInventoryUpdateService.ts +++ b/src/services/missionInventoryUpdateService.ts @@ -43,7 +43,7 @@ import { TInventoryDatabaseDocument } from "@/src/models/inventoryModels/invento import { getEntriesUnsafe } from "@/src/utils/ts-utils"; import { IEquipmentClient } from "@/src/types/inventoryTypes/commonInventoryTypes"; import { handleStoreItemAcquisition } from "./purchaseService"; -import { IMissionReward } from "../types/missionTypes"; +import { IMissionCredits, IMissionReward } from "../types/missionTypes"; import { crackRelic } from "@/src/helpers/relicHelper"; import { createMessage } from "./inboxService"; import kuriaMessage50 from "@/static/fixed_responses/kuriaMessages/fiftyPercent.json"; @@ -885,13 +885,6 @@ export const addMissionRewards = async ( return { inventoryChanges, MissionRewards, credits, AffiliationMods, SyndicateXPItemReward }; }; -interface IMissionCredits { - MissionCredits: number[]; - CreditBonus: number[]; - TotalCredits: number[]; - DailyMissionBonus?: boolean; -} - //creditBonus is not entirely accurate. //TODO: consider ActiveBoosters export const addCredits = ( diff --git a/src/types/missionTypes.ts b/src/types/missionTypes.ts index c8cab373..be1d08bc 100644 --- a/src/types/missionTypes.ts +++ b/src/types/missionTypes.ts @@ -1,3 +1,5 @@ +import { IAffiliationMods, IInventoryChanges } from "./purchaseTypes"; + export const inventoryFields = ["RawUpgrades", "MiscItems", "Consumables", "Recipes"] as const; export type IInventoryFieldType = (typeof inventoryFields)[number]; @@ -11,3 +13,20 @@ export interface IMissionReward { FromEnemyCache?: boolean; IsStrippedItem?: boolean; } + +export interface IMissionCredits { + MissionCredits: number[]; + CreditBonus: number[]; + TotalCredits: number[]; + DailyMissionBonus?: boolean; +} + +export interface IMissionInventoryUpdateResponse extends Partial { + ConquestCompletedMissionsCount?: number; + InventoryJson?: string; + MissionRewards?: IMissionReward[]; + InventoryChanges?: IInventoryChanges; + FusionPoints?: number; + SyndicateXPItemReward?: number; + AffiliationMods?: IAffiliationMods[]; +} diff --git a/src/types/requestTypes.ts b/src/types/requestTypes.ts index b81fa064..652ea65e 100644 --- a/src/types/requestTypes.ts +++ b/src/types/requestTypes.ts @@ -125,6 +125,7 @@ export type IMissionInventoryUpdateRequest = { wagerTier?: number; // the index creditsFee?: number; // the index InvasionProgress?: IInvasionProgressClient[]; + ConquestMissionsCompleted?: number; } & { [K in TEquipmentKey]?: IEquipmentClient[]; };