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 { inject, injectable } from "tsyringe";
|
||||||
|
|
||||||
import { InventoryController } from "@spt-aki/controllers/InventoryController";
|
import { InventoryController } from "@spt-aki/controllers/InventoryController";
|
||||||
|
import { QuestController } from "@spt-aki/controllers/QuestController";
|
||||||
import { IPmcData } from "@spt-aki/models/eft/common/IPmcData";
|
import { IPmcData } from "@spt-aki/models/eft/common/IPmcData";
|
||||||
import { IInventoryBindRequestData } from "@spt-aki/models/eft/inventory/IInventoryBindRequestData";
|
import { IInventoryBindRequestData } from "@spt-aki/models/eft/inventory/IInventoryBindRequestData";
|
||||||
import { IInventoryCreateMarkerRequestData } from "@spt-aki/models/eft/inventory/IInventoryCreateMarkerRequestData";
|
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 { IRedeemProfileRequestData } from "@spt-aki/models/eft/inventory/IRedeemProfileRequestData";
|
||||||
import { ISetFavoriteItems } from "@spt-aki/models/eft/inventory/ISetFavoriteItems";
|
import { ISetFavoriteItems } from "@spt-aki/models/eft/inventory/ISetFavoriteItems";
|
||||||
import { IItemEventRouterResponse } from "@spt-aki/models/eft/itemEvent/IItemEventRouterResponse";
|
import { IItemEventRouterResponse } from "@spt-aki/models/eft/itemEvent/IItemEventRouterResponse";
|
||||||
|
import { IFailQuestRequestData } from "@spt-aki/models/eft/quests/IFailQuestRequestData";
|
||||||
|
|
||||||
@injectable()
|
@injectable()
|
||||||
export class InventoryCallbacks
|
export class InventoryCallbacks
|
||||||
{
|
{
|
||||||
constructor(@inject("InventoryController") protected inventoryController: InventoryController)
|
constructor(
|
||||||
|
@inject("InventoryController") protected inventoryController: InventoryController,
|
||||||
|
@inject("QuestController") protected questController: QuestController
|
||||||
|
)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
/** Handle Move event */
|
/** Handle Move event */
|
||||||
@ -173,4 +178,9 @@ export class InventoryCallbacks
|
|||||||
{
|
{
|
||||||
return this.inventoryController.setFavoriteItem(pmcData, body, sessionId);
|
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)
|
if (isActiveQuestInPlayerProfile)
|
||||||
{
|
{
|
||||||
const failBody: IFailQuestRequestData = {
|
const failBody: IFailQuestRequestData = {
|
||||||
Action: "QuestComplete",
|
Action: "QuestFail",
|
||||||
qid: questToFail._id,
|
qid: questToFail._id,
|
||||||
removeExcessItems: true,
|
removeExcessItems: true,
|
||||||
};
|
};
|
||||||
@ -939,4 +939,16 @@ export class QuestController
|
|||||||
type: "HandoverItem",
|
type: "HandoverItem",
|
||||||
value: counterValue };
|
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
|
// Send failed message
|
||||||
const failBody: IFailQuestRequestData = {
|
const failBody: IFailQuestRequestData = {
|
||||||
Action: "QuestComplete",
|
Action: "QuestFail",
|
||||||
qid: postRaidQuest.qid,
|
qid: postRaidQuest.qid,
|
||||||
removeExcessItems: true,
|
removeExcessItems: true,
|
||||||
};
|
};
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
export interface IFailQuestRequestData
|
export interface IFailQuestRequestData
|
||||||
{
|
{
|
||||||
Action: "QuestComplete";
|
Action: "QuestFail";
|
||||||
qid: string;
|
qid: string;
|
||||||
removeExcessItems: boolean;
|
removeExcessItems: boolean;
|
||||||
}
|
}
|
||||||
|
@ -24,5 +24,6 @@ export enum ItemEventActions {
|
|||||||
SAVE_EQUIPMENT_BUILD = "SaveEquipmentBuild",
|
SAVE_EQUIPMENT_BUILD = "SaveEquipmentBuild",
|
||||||
REMOVE_EQUIPMENT_BUILD = "RemoveEquipmentBuild",
|
REMOVE_EQUIPMENT_BUILD = "RemoveEquipmentBuild",
|
||||||
REDEEM_PROFILE_REWARD = "RedeemProfileReward",
|
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.HIDEOUT_QTE_EVENT, false),
|
||||||
new HandledRoute(ItemEventActions.REDEEM_PROFILE_REWARD, false),
|
new HandledRoute(ItemEventActions.REDEEM_PROFILE_REWARD, false),
|
||||||
new HandledRoute(ItemEventActions.SET_FAVORITE_ITEMS, false),
|
new HandledRoute(ItemEventActions.SET_FAVORITE_ITEMS, false),
|
||||||
|
new HandledRoute(ItemEventActions.QUEST_FAIL, false),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user