Add handling for quest failing while player is at menu
This commit is contained in:
parent
b5951a147b
commit
3979e6ef61
@ -1,6 +1,7 @@
|
||||
import { inject, injectable } from "tsyringe";
|
||||
|
||||
import { InventoryController } from "@spt-aki/controllers/InventoryController";
|
||||
import { QuestController } from "@spt-aki/controllers/QuestController";
|
||||
import { IPmcData } from "@spt-aki/models/eft/common/IPmcData";
|
||||
import { IInventoryBindRequestData } from "@spt-aki/models/eft/inventory/IInventoryBindRequestData";
|
||||
import { IInventoryCreateMarkerRequestData } from "@spt-aki/models/eft/inventory/IInventoryCreateMarkerRequestData";
|
||||
@ -22,11 +23,15 @@ import { IOpenRandomLootContainerRequestData } from "@spt-aki/models/eft/invento
|
||||
import { IRedeemProfileRequestData } from "@spt-aki/models/eft/inventory/IRedeemProfileRequestData";
|
||||
import { ISetFavoriteItems } from "@spt-aki/models/eft/inventory/ISetFavoriteItems";
|
||||
import { IItemEventRouterResponse } from "@spt-aki/models/eft/itemEvent/IItemEventRouterResponse";
|
||||
import { IFailQuestRequestData } from "@spt-aki/models/eft/quests/IFailQuestRequestData";
|
||||
|
||||
@injectable()
|
||||
export class InventoryCallbacks
|
||||
{
|
||||
constructor(@inject("InventoryController") protected inventoryController: InventoryController)
|
||||
constructor(
|
||||
@inject("InventoryController") protected inventoryController: InventoryController,
|
||||
@inject("QuestController") protected questController: QuestController
|
||||
)
|
||||
{}
|
||||
|
||||
/** Handle Move event */
|
||||
@ -173,4 +178,9 @@ export class InventoryCallbacks
|
||||
{
|
||||
return this.inventoryController.setFavoriteItem(pmcData, body, sessionId);
|
||||
}
|
||||
|
||||
public failQuest(pmcData: IPmcData, request: IFailQuestRequestData, sessionID: string): IItemEventRouterResponse
|
||||
{
|
||||
return this.questController.failQuest(pmcData, request, sessionID);
|
||||
}
|
||||
}
|
||||
|
@ -718,7 +718,7 @@ export class QuestController
|
||||
if (isActiveQuestInPlayerProfile)
|
||||
{
|
||||
const failBody: IFailQuestRequestData = {
|
||||
Action: "QuestComplete",
|
||||
Action: "QuestFail",
|
||||
qid: questToFail._id,
|
||||
removeExcessItems: true,
|
||||
};
|
||||
@ -939,4 +939,16 @@ export class QuestController
|
||||
type: "HandoverItem",
|
||||
value: counterValue };
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle /client/game/profile/items/moving - QuestFail
|
||||
* @param pmcData Pmc profile
|
||||
* @param request Fail qeust request
|
||||
* @param sessionID Session id
|
||||
* @returns IItemEventRouterResponse
|
||||
*/
|
||||
public failQuest(pmcData: IPmcData, request: IFailQuestRequestData, sessionID: string): IItemEventRouterResponse
|
||||
{
|
||||
return this.questHelper.failQuest(pmcData, request, sessionID);
|
||||
}
|
||||
}
|
||||
|
@ -317,7 +317,7 @@ export class InRaidHelper
|
||||
{
|
||||
// Send failed message
|
||||
const failBody: IFailQuestRequestData = {
|
||||
Action: "QuestComplete",
|
||||
Action: "QuestFail",
|
||||
qid: postRaidQuest.qid,
|
||||
removeExcessItems: true,
|
||||
};
|
||||
|
@ -1,6 +1,6 @@
|
||||
export interface IFailQuestRequestData
|
||||
{
|
||||
Action: "QuestComplete";
|
||||
Action: "QuestFail";
|
||||
qid: string;
|
||||
removeExcessItems: boolean;
|
||||
}
|
||||
|
@ -24,5 +24,6 @@ export enum ItemEventActions {
|
||||
SAVE_EQUIPMENT_BUILD = "SaveEquipmentBuild",
|
||||
REMOVE_EQUIPMENT_BUILD = "RemoveEquipmentBuild",
|
||||
REDEEM_PROFILE_REWARD = "RedeemProfileReward",
|
||||
SET_FAVORITE_ITEMS = "SetFavoriteItems"
|
||||
SET_FAVORITE_ITEMS = "SetFavoriteItems",
|
||||
QUEST_FAIL = "QuestFail"
|
||||
}
|
||||
|
@ -42,6 +42,7 @@ export class InventoryItemEventRouter extends ItemEventRouterDefinition
|
||||
new HandledRoute(ItemEventActions.HIDEOUT_QTE_EVENT, false),
|
||||
new HandledRoute(ItemEventActions.REDEEM_PROFILE_REWARD, false),
|
||||
new HandledRoute(ItemEventActions.SET_FAVORITE_ITEMS, false),
|
||||
new HandledRoute(ItemEventActions.QUEST_FAIL, false),
|
||||
];
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user