From 18fafc38b500eb5ef162b9a3408e4368fc9e62d6 Mon Sep 17 00:00:00 2001 From: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com> Date: Thu, 23 Oct 2025 07:42:18 -0700 Subject: [PATCH] feat: invasion additional credits (#2925) Re #1097 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2925 Reviewed-by: Sainan <63328889+sainan@users.noreply.github.com> Co-authored-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com> Co-committed-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com> --- src/services/missionInventoryUpdateService.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/services/missionInventoryUpdateService.ts b/src/services/missionInventoryUpdateService.ts index 5c875ab1f..336efe87b 100644 --- a/src/services/missionInventoryUpdateService.ts +++ b/src/services/missionInventoryUpdateService.ts @@ -1126,7 +1126,8 @@ export const addMissionRewards = async ( RegularCredits: creditDrops, VoidTearParticipantsCurrWave: voidTearWave, StrippedItems: strippedItems, - AffiliationChanges: AffiliationMods + AffiliationChanges: AffiliationMods, + InvasionProgress: invasionProgress }: IMissionInventoryUpdateRequest, firstCompletion: boolean ): Promise => { @@ -1176,6 +1177,19 @@ export const addMissionRewards = async ( //inventory change is what the client has not rewarded itself, also the client needs to know the credit changes for display + if (invasionProgress) { + for (const clientProgress of invasionProgress) { + const dbProgress = inventory.QualifyingInvasions.find(x => x.invasionId.equals(clientProgress._id.$oid)); + if (dbProgress) { + const run = + (clientProgress.AttackerScore > clientProgress.DefenderScore + ? dbProgress.AttackerScore + : dbProgress.DefenderScore) - 1; + missionCompletionCredits += 1000 * Math.min(run, 10); + } + } + } + if (rewardInfo.goalId) { const goal = getWorldState().Goals.find(x => x._id.$oid == rewardInfo.goalId); if (goal) {