Added per-profile type redeem times to server
unheard has a 72 hour redeem time vs all other profiles 48 renamed `redeemTime` to `mailRedeemTimeHours`
This commit is contained in:
parent
493a54759b
commit
597ea96f34
@ -1,5 +1,8 @@
|
||||
{
|
||||
"redeemTime": 48,
|
||||
"mailRedeemTimeHours": {
|
||||
"default": 48,
|
||||
"unheard_edition": 72
|
||||
},
|
||||
"usecOnlyQuests": [
|
||||
"6179b5eabca27a099552e052",
|
||||
"5e383a6386f77465910ce1f3",
|
||||
|
@ -337,7 +337,7 @@ export class QuestController
|
||||
MessageType.QUEST_START,
|
||||
messageId,
|
||||
startedQuestRewardItems,
|
||||
this.timeUtil.getHoursAsSeconds(this.questConfig.redeemTime),
|
||||
this.timeUtil.getHoursAsSeconds(this.questHelper.getMailItemRedeemTimeHoursForProfile(pmcData)),
|
||||
);
|
||||
|
||||
// Having accepted new quest, look for newly unlocked quests and inform client of them
|
||||
@ -644,7 +644,7 @@ export class QuestController
|
||||
MessageType.QUEST_SUCCESS,
|
||||
quest.successMessageText,
|
||||
questRewards,
|
||||
this.timeUtil.getHoursAsSeconds(this.questConfig.redeemTime),
|
||||
this.timeUtil.getHoursAsSeconds(this.questHelper.getMailItemRedeemTimeHoursForProfile(pmcData)),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -755,7 +755,7 @@ export class QuestHelper
|
||||
MessageType.QUEST_FAIL,
|
||||
quest.failMessageText,
|
||||
questRewards,
|
||||
this.timeUtil.getHoursAsSeconds(this.questConfig.redeemTime),
|
||||
this.timeUtil.getHoursAsSeconds(this.getMailItemRedeemTimeHoursForProfile(pmcData)),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1167,4 +1167,20 @@ export class QuestHelper
|
||||
return quest.conditions.Fail.some((condition) => condition.target?.includes(completedQuestId));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the hours a mails items can be collected for by profile type
|
||||
* @param pmcData Profile to get hours for
|
||||
* @returns Hours item will be available for
|
||||
*/
|
||||
public getMailItemRedeemTimeHoursForProfile(pmcData: IPmcData): number
|
||||
{
|
||||
const value = this.questConfig.mailRedeemTimeHours[pmcData.Info.GameVersion];
|
||||
if (!value)
|
||||
{
|
||||
return this.questConfig.mailRedeemTimeHours["default"];
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
@ -33,6 +33,7 @@ import { RagfairOfferService } from "@spt-aki/services/RagfairOfferService";
|
||||
import { RagfairRequiredItemsService } from "@spt-aki/services/RagfairRequiredItemsService";
|
||||
import { HashUtil } from "@spt-aki/utils/HashUtil";
|
||||
import { TimeUtil } from "@spt-aki/utils/TimeUtil";
|
||||
import { QuestHelper } from "./QuestHelper";
|
||||
|
||||
@injectable()
|
||||
export class RagfairOfferHelper
|
||||
@ -53,6 +54,7 @@ export class RagfairOfferHelper
|
||||
@inject("PaymentHelper") protected paymentHelper: PaymentHelper,
|
||||
@inject("PresetHelper") protected presetHelper: PresetHelper,
|
||||
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
|
||||
@inject("QuestHelper") protected questHelper: QuestHelper,
|
||||
@inject("RagfairServerHelper") protected ragfairServerHelper: RagfairServerHelper,
|
||||
@inject("RagfairSortHelper") protected ragfairSortHelper: RagfairSortHelper,
|
||||
@inject("RagfairHelper") protected ragfairHelper: RagfairHelper,
|
||||
@ -503,7 +505,8 @@ export class RagfairOfferHelper
|
||||
MessageType.FLEAMARKET_MESSAGE,
|
||||
this.getLocalisedOfferSoldMessage(itemTpl, boughtAmount),
|
||||
itemsToSend,
|
||||
this.timeUtil.getHoursAsSeconds(this.questConfig.redeemTime),
|
||||
this.timeUtil.getHoursAsSeconds(
|
||||
this.questHelper.getMailItemRedeemTimeHoursForProfile(this.profileHelper.getPmcProfile(sessionID))),
|
||||
null,
|
||||
ragfairDetails,
|
||||
);
|
||||
|
@ -6,8 +6,8 @@ import { IBaseConfig } from "@spt-aki/models/spt/config/IBaseConfig";
|
||||
export interface IQuestConfig extends IBaseConfig
|
||||
{
|
||||
kind: "aki-quest"
|
||||
// Hours to get/redeem items from quest mail
|
||||
redeemTime: number
|
||||
// Hours to get/redeem items from quest mail keyed by profile type
|
||||
mailRedeemTimeHours: Record<string, number>
|
||||
questTemplateIds: IPlayerTypeQuestIds
|
||||
/** Show non-seasonal quests be shown to player */
|
||||
showNonSeasonalEventQuests: boolean
|
||||
|
Loading…
x
Reference in New Issue
Block a user