From db873e58a963a859e262ebeb7782a362bef2f507 Mon Sep 17 00:00:00 2001 From: Lacyway <20912169+Lacyway@users.noreply.github.com> Date: Fri, 22 Nov 2024 22:27:08 +0100 Subject: [PATCH] User raid counter to determine whether to regen loot --- src/models/fika/IFikaMatch.ts | 1 + src/overrides/services/LocationLifecycleService.ts | 5 ++++- src/services/FikaMatchService.ts | 7 ++++--- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/models/fika/IFikaMatch.ts b/src/models/fika/IFikaMatch.ts index 05843446..41dc95db 100644 --- a/src/models/fika/IFikaMatch.ts +++ b/src/models/fika/IFikaMatch.ts @@ -24,4 +24,5 @@ export interface IFikaMatch { raidCode: string; natPunch: boolean; isDedicated: boolean; + raids: number; } diff --git a/src/overrides/services/LocationLifecycleService.ts b/src/overrides/services/LocationLifecycleService.ts index 7f362bc9..0d1b39ef 100644 --- a/src/overrides/services/LocationLifecycleService.ts +++ b/src/overrides/services/LocationLifecycleService.ts @@ -54,7 +54,10 @@ export class LocationLifecycleServiceOverride extends Override { // player is in a Fika match, use match location loot and regen if transit const match = this.fikaMatchService.getMatch(matchId); if (matchId === sessionId) { - match.locationData = lifecycleService.generateLocationAndLoot(request.location); + match.raids++; + if (match.raids > 1) { + match.locationData = lifecycleService.generateLocationAndLoot(request.location); + } } locationLoot = match.locationData; } diff --git a/src/services/FikaMatchService.ts b/src/services/FikaMatchService.ts index 0e01b36a..3bd22fd2 100644 --- a/src/services/FikaMatchService.ts +++ b/src/services/FikaMatchService.ts @@ -1,20 +1,20 @@ import { inject, injectable } from "tsyringe"; -import { LocationLifecycleService } from "@spt/services/LocationLifecycleService"; import { ILogger } from "@spt/models/spt/utils/ILogger"; import { SaveServer } from "@spt/servers/SaveServer"; +import { LocationLifecycleService } from "@spt/services/LocationLifecycleService"; import { EFikaMatchEndSessionMessage } from "../models/enums/EFikaMatchEndSessionMessages"; import { EFikaMatchStatus } from "../models/enums/EFikaMatchStatus"; +import { EFikaPlayerPresences } from "../models/enums/EFikaPlayerPresences"; import { IFikaMatch } from "../models/fika/IFikaMatch"; import { IFikaPlayer } from "../models/fika/IFikaPlayer"; import { IFikaRaidCreateRequestData } from "../models/fika/routes/raid/create/IFikaRaidCreateRequestData"; -import { EFikaPlayerPresences } from "../models/enums/EFikaPlayerPresences"; import { FikaConfig } from "../utils/FikaConfig"; -import { FikaDedicatedRaidService } from "./dedicated/FikaDedicatedRaidService"; import { FikaInsuranceService } from "./FikaInsuranceService"; import { FikaPresenceService } from "./FikaPresenceService"; +import { FikaDedicatedRaidService } from "./dedicated/FikaDedicatedRaidService"; @injectable() export class FikaMatchService { @@ -209,6 +209,7 @@ export class FikaMatchService { raidCode: data.raidCode, natPunch: false, isDedicated: false, + raids: 0 }); this.addTimeoutInterval(data.serverId);