diff --git a/project/src/callbacks/HideoutCallbacks.ts b/project/src/callbacks/HideoutCallbacks.ts index f40b7bec..3c823588 100644 --- a/project/src/callbacks/HideoutCallbacks.ts +++ b/project/src/callbacks/HideoutCallbacks.ts @@ -3,6 +3,7 @@ import { OnUpdate } from "@spt/di/OnUpdate"; import { IPmcData } from "@spt/models/eft/common/IPmcData"; import { IHandleQTEEventRequestData } from "@spt/models/eft/hideout/IHandleQTEEventRequestData"; import { IHideoutCancelProductionRequestData } from "@spt/models/eft/hideout/IHideoutCancelProductionRequestData"; +import { IHideoutCircleOfCultistProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutCircleOfCultistProductionStartRequestData"; import { IHideoutContinuousProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutContinuousProductionStartRequestData"; import { IHideoutImproveAreaRequestData } from "@spt/models/eft/hideout/IHideoutImproveAreaRequestData"; import { IHideoutPutItemInRequestData } from "@spt/models/eft/hideout/IHideoutPutItemInRequestData"; @@ -186,6 +187,17 @@ export class HideoutCallbacks implements OnUpdate { return this.hideoutController.cancelProduction(sessionId, pmcData, request); } + /** + * Handle client/game/profile/items/moving - HideoutCircleOfCultistProductionStart + */ + circleOfCultistProductionStart( + pmcData: IPmcData, + request: IHideoutCircleOfCultistProductionStartRequestData, + sessionId: string, + ): IItemEventRouterResponse | PromiseLike { + return this.hideoutController.circleOfCultistProductionStart(sessionId, pmcData, request); + } + public async onUpdate(timeSinceLastRun: number): Promise { if (timeSinceLastRun > this.hideoutConfig.runIntervalSeconds) { this.hideoutController.update(); diff --git a/project/src/controllers/HideoutController.ts b/project/src/controllers/HideoutController.ts index 64f03b74..af7835ea 100644 --- a/project/src/controllers/HideoutController.ts +++ b/project/src/controllers/HideoutController.ts @@ -12,6 +12,7 @@ import { HideoutUpgradeCompleteRequestData } from "@spt/models/eft/hideout/Hideo import { IHandleQTEEventRequestData } from "@spt/models/eft/hideout/IHandleQTEEventRequestData"; import { IHideoutArea, Stage } from "@spt/models/eft/hideout/IHideoutArea"; import { IHideoutCancelProductionRequestData } from "@spt/models/eft/hideout/IHideoutCancelProductionRequestData"; +import { IHideoutCircleOfCultistProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutCircleOfCultistProductionStartRequestData"; import { IHideoutContinuousProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutContinuousProductionStartRequestData"; import { IHideoutImproveAreaRequestData } from "@spt/models/eft/hideout/IHideoutImproveAreaRequestData"; import { IHideoutProduction } from "@spt/models/eft/hideout/IHideoutProduction"; @@ -1238,6 +1239,20 @@ export class HideoutController { return output; } + /** + * Handle client/game/profile/items/moving - HideoutCircleOfCultistProductionStart + * @param sessionId Session id + * @param pmcData Profile of crafter + * @param request Request data + */ + public circleOfCultistProductionStart( + sessionId: string, + pmcData: IPmcData, + request: IHideoutCircleOfCultistProductionStartRequestData, + ): IItemEventRouterResponse | PromiseLike { + throw new Error("Method not implemented."); + } + /** * Function called every x seconds as part of onUpdate event */ diff --git a/project/src/models/eft/hideout/IHideoutCircleOfCultistProductionStartRequestData.ts b/project/src/models/eft/hideout/IHideoutCircleOfCultistProductionStartRequestData.ts new file mode 100644 index 00000000..09861c8f --- /dev/null +++ b/project/src/models/eft/hideout/IHideoutCircleOfCultistProductionStartRequestData.ts @@ -0,0 +1,3 @@ +export type IHideoutCircleOfCultistProductionStartRequestData = { + Action: "HideoutCircleOfCultistProductionStart"; +}; diff --git a/project/src/models/enums/HideoutEventActions.ts b/project/src/models/enums/HideoutEventActions.ts index 514e029f..cd42eff5 100644 --- a/project/src/models/enums/HideoutEventActions.ts +++ b/project/src/models/enums/HideoutEventActions.ts @@ -11,4 +11,5 @@ export enum HideoutEventActions { HIDEOUT_RECORD_SHOOTING_RANGE_POINTS = "RecordShootingRangePoints", HIDEOUT_IMPROVE_AREA = "HideoutImproveArea", HIDEOUT_CANCEL_PRODUCTION_COMMAND = "HideoutCancelProductionCommand", + HIDEOUT_CIRCLE_OF_CULTIST_PRODUCTION_START = "HideoutCircleOfCultistProductionStart", } diff --git a/project/src/routers/item_events/HideoutItemEventRouter.ts b/project/src/routers/item_events/HideoutItemEventRouter.ts index 07c0bf5a..d317e1db 100644 --- a/project/src/routers/item_events/HideoutItemEventRouter.ts +++ b/project/src/routers/item_events/HideoutItemEventRouter.ts @@ -25,6 +25,7 @@ export class HideoutItemEventRouter extends ItemEventRouterDefinition { new HandledRoute(HideoutEventActions.HIDEOUT_RECORD_SHOOTING_RANGE_POINTS, false), new HandledRoute(HideoutEventActions.HIDEOUT_IMPROVE_AREA, false), new HandledRoute(HideoutEventActions.HIDEOUT_CANCEL_PRODUCTION_COMMAND, false), + new HandledRoute(HideoutEventActions.HIDEOUT_CIRCLE_OF_CULTIST_PRODUCTION_START, false), ]; } @@ -60,6 +61,8 @@ export class HideoutItemEventRouter extends ItemEventRouterDefinition { return this.hideoutCallbacks.improveArea(pmcData, body, sessionID); case HideoutEventActions.HIDEOUT_CANCEL_PRODUCTION_COMMAND: return this.hideoutCallbacks.cancelProduction(pmcData, body, sessionID); + case HideoutEventActions.HIDEOUT_CIRCLE_OF_CULTIST_PRODUCTION_START: + return this.hideoutCallbacks.circleOfCultistProductionStart(pmcData, body, sessionID); default: throw new Error(`Unhandled event ${url} request: ${JSON.stringify(body)}`); }